

Both of these binaries are included with every Visual Studio install. For these DLLs we can use a listing of exported names obtained from dumpbin.exe to provide to lib.exe which will create a lib file manually for the module in question. Sometimes, you may find DLLs that you want to use but which don't have an associated lib file. When DLL files are distributed with the intent to be linked against their corresponding lib files are made easily available. Unfortunately, sometimes we don't have that luxury and want to link against non-public modules using a standard import table. However, for the smallest binaries you may need to import manually instead of relying on the default import table.

This saves us the trouble of having to manually locate exported names from modules using either the LoadLibrary and GetProcAddress functions or parsing the module's PE headers by hand. If we want to include references to existing DLL files in our binary's import table in a language like C++ we need to provide a lib file to the linker.
