有.dll文件和头文件时如何制作.lib文件

hde*_*hde 43 c++ dll header function

我正在尝试在visual studio中创建一个能够访问已存在的.dll文件的应用程序.我需要应用程序来调用例程.我还有一个已经存在的头文件.

我一直在研究互联网,发现我需要创建一个.lib文件.在这里查看类似的问题我找到了一个链接:http://support.microsoft.com/kb/131313 但是我不能按照指示操​​作.

链接中的信息表示要创建一个DEF文件(我在别处读到这需要编译为具有相同名称的DLL,但不确定该名称是什么,与.dll文件同名?).但我不明白第一个方向,即"使用DUMPBIN/EXPORTS".然后我需要"存根"函数,然后与.OBJ文件有关(我不知道这些文件是什么).

是否有任何分步指导,类似于上面的链接,很容易遵循?

San*_*iew 56

您将需要Microsoft Visual C++ 2010 Express(或任何其他MSVC命令行工具源)和您的DLL.

脚步:

  1. dumpbin /EXPORTS yourfile.dll > yourfile.exports
  2. 将所需函数的名称粘贴yourfile.exports到新yourfile.def文件中.EXPORTS在该文件的顶部添加一行单词.
  3. VC\bin目录(其中lib.exe和其他编译工具驻留的那个)运行以下命令.

 

 vcvars32.bat

 lib /def:yourfile.def /out:yourfile.lib
Run Code Online (Sandbox Code Playgroud)

你应该得到两个文件:yourfile.libyourfile.exp

  • 对于步骤1和2而不是Dependency Walker使用`dumpbin.exe/EXPORTS yourfile.dll`同样适用于获取导出的函数名称. (3认同)

小智 17

您可以使用Digital Mars的IMPLIB工具.它可以仅使用dll创建一个lib文件,而不需要.def文件.

下载链接是http://ftp.digitalmars.com/bup.zip.

命令行是:

implib.exe /s mydll.lib mydll.dll
Run Code Online (Sandbox Code Playgroud)

  • 看起来它不适用于64位DLL. (6认同)
  • 我怀疑数字火星解决方案是否有效。VS 使用 PE-COFF 格式,而 DM 使用 OEM 格式,需要额外的步骤才能转换为 VS 中可用的格式。 (2认同)