Combuster wrote:That's your design choice to write an implementation with that requirement, not Microsoft's.
According to the product page, you can launch it via the command line as well. Either way, its a commercial product, I don't think a software company\team is going to be using an express edition of Visual Studio. I will say that posting the trail here is pretty useless because anyone looking into OSDev is almost certainly doing it on his own time, and isn't going to be able to afford or want a commercial product like that.
On a related note, I suddenly find that my code could have benefited from a product like that.
I was using this bit of code...
Code: Select all
...
#define CHUNK_POOL_INDEX_PUSH(x) chunk_pool_stack--; *chunk_pool_stack = x
unsigned short* chunk_pool_stack;
...
int i;
...
for (i = 65535; i >= 0; i--)
CHUNK_POOL_INDEX_PUSH(i);
Which to my surprise, would decrement the stack pointer all the way down, but only set the last element, not to 0 though, but to 65535. I'll let you try and figure it out without spoiling the fun.
Answer:
Only the first statement in the macro was run through the loop, since without braces only the statement immediately following the for loop will be executed. So it expanded to this
for (i = 65535; i >= 0; i--)
chunk_pool_stack--;
*chunk_pool_stack = i;
since i is now -1, the last element is set to 65535, not 0 as you would expect.
Correct code:
for (i = 65535; i >= 0; i--)
{
CHUNK_POOL_INDEX_PUSH(i);
}
Even better would be not to use multiline macros that look like single statements. Luckily it only took me a minute or two to catch this after testing it.