Originally Posted by
pkt-zer0
Macros are simply text replaced with other text in the code, during compile time. So it doesn't slow anything at all, only what's executed within. With functions, the return address and values go on the stack, so your only problem would be that filling, and the program crashing. Don't' worry, it's pretty large, for this purpose at least, but going into infinite recursion crashes it, recursion itself eats up pretty much of the stack, as well. With the stack being the part of the memory that's accessed with the greatest speed, that's not quite good.
DLLs are Dynamically Linked Libraries, meaning they get linked run-time, more precisely on start. I don't think that's much slower (obviously you'll get smaller executable sizes than including the libraries in the EXE itself), but version incompatibilities could be a problem sometimes.