DLL:导出LIB,修改名字

Posted kohlrabi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DLL:导出LIB,修改名字相关的知识,希望对你有一定的参考价值。

用VS工具从dll导出lib

VS开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个
工具即可从dll导出其对应的lib。

  1. 在VS命令行工具中执行:

    dumpbin /exports yourdll.dll > yourdll.def 
  2. 编辑yourdll.def文件,使之格式与.def文件格式一致。比如:

    LIBRARY yourdll.dll
    EXPORTS 
    fn1
    fn2
  3. 在命令行执行:

    lib /def:yourdll.def /machine:x64 /out:yourdll.lib

pexports工具

上述第1、2步中,导出的def文件需要修改后才能用来导出lib文件。这两步可以使用pexports一次解决:

pexports yourdll.dll > yourdll.def

pexports生成的def文件已经是标准格式,可以直接用lib工具生成lib文件。

dll库改名

有了上面的方法就可以给dll库改名了,假设想把库the_old_name.dll改为name.dll:

  1. 先用dll导出def:

    pexports the_old_name.dll > name.def
  2. 修改def中LIBRARY后的名称

    LIBRARY the_old_name.dll --> LIBRARY name.dll
  3. 用修改后的def导出新的lib

    lib /def:name.def /machine:x64 /out:name.lib

    用上面的name.lib作为导入库的程序,会以name.dll作为依赖库。再将the_old_name.dll改为name.dll就可以了。

以上是关于DLL:导出LIB,修改名字的主要内容,如果未能解决你的问题,请参考以下文章

DLL生成与使用的全过程

MFC Dll 导出函数

Windows系统中的lib文件是做啥用的?

c++调用dll导出函数

在代码执行进入 Dll 或 Lib 空间时中断

C++中lib 和 dll 的区别,生成以及使用详解