A .lib is nice. But like sz72 said not required (as there are ways to make it).
Most libraries I have seen have these three .h, .lib, and .dll.
As for name mangling if you are using any sort of C++ and a MS compiler you will end up with it (by default). There are ways to turn it off. Typically you either mark your export points as "C" or write some sort of trampoline layer.
The MS compiler will create a .lib for you that you can include into other projects. If you were to crack it open you would see some asm that does the heavy lifting of mapping functions and LoadLibrary/GetProcAddress. Hiding the details of that by making a nice abstraction layer for you.
Edited by lharms (10/17/11 03:29 AM)
|