An very nice and short description of the differences between dynamic
module linking between Windows and Unix. It helped clear up one misconception
I had about Windows linking. .lib files are NOT static libraries
that you link into your program as I originally thought. Chris explains
it nice and succinctly:
In Windows, there are two types of library, a static library and an import library (both called .lib). A static library is like a Unix .a file; it contains code to be included as necessary. An import library is basically used only to reassure the linker that a certain identifier is legal, and will be present in the program when the .dll is loaded. So the linker uses the information from the import library to build the lookup table for using identifiers that aren’t included in the .dll. When an application or a .dll is linked, an import library may be generated, which will need to be used for all future .dll’s that depend on the symbols in the application or .dll.
Overall, a nice read helping to clear up (some of) the differences between
the linking system between Windows and UNIX.