How to make a .lib file when have a .dll file and a header file
c++, dll, function, header
Solution
You're going to need Microsoft Visual C++ 2010 Express (or any other source of MSVC command line tools), and your DLL.
Steps:
- `dumpbin /EXPORTS yourfile.dll > yourfile.exports`
- Paste the names of the needed functions from `yourfile.exports` into a new `yourfile.def` file. Add a line with the word `EXPORTS` at the top of this file.
- Run the following commands from `VC\bin` directory (the one where `lib.exe` and other compile tools reside).
vcvars32.bat
lib /def:yourfile.def /out:yourfile.lib
or for x64 builds
lib /def:yourfile.def /machine:x64 /out:yourfile64.lib
You should get two files generated: `yourfile.lib` and `yourfile.exp`
Problem
I am trying to create an application in visual studio that will be able to access a .dll file that already exists. I need the application to call up routines. I also have a header file that already exists. I have been researching on the internet and have found that I need to create a .lib file. Looking at similar questions on here I found a link: http://support.microsoft.com/kb/131313 I cannot however follow the directions. The information in the link says to make a DEF file ( I read elsewhere that this needs to be compiled as a DLL with the same name, but not sure what that name is, the same name as the .dll file?). But I do not understand the first direction, to 'Use DUMPBIN /EXPORTS'. I then need to 'stub out' functions, and then something to do with .OBJ files (I do not know what these files are). Are there any step-by-step directions, similar to the link above, that are easy to follow?