Megatron is correct - and adding just a bit

When you link to a reference in a .lib file, you don't necessarily suck the whole .lib file into your .exe. When you have a reference to a .dll, on the other hand, you have to have the whole .dll on any system that runs your code.

The idea behind a .lib file is to make a piece of code you put on any system, with no worries abour portability. The idea behind a dll is to make a small executable, and you do have to watch movinf it from system to system.