工具:dumpbin.exe : COFF DLL 动态库依赖库 :VS工具
Posted 天有行-地无迹-千秋怎堪一剑扫
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工具:dumpbin.exe : COFF DLL 动态库依赖库 :VS工具相关的知识,希望对你有一定的参考价值。
摘要:
- 速度快,不会像depend.dll 那样卡顿。
- 但是无法查看调用dll 调用的dll,所以不如depend.exe 好用。
- 查看方式不如depend.exe 直观。
总结:** 可能不怎么用**
介绍:
dumpbin.exe是微软二进制文件转储器。显示有关通用对象文件格式 (COFF) 的二进制文件的信息。
可以使用 DUMPBIN 检查 COFF 对象文件、 COFF 对象、 可执行文件和动态链接库 (Dll) 的标准库。
参考:
位置:
文件路径: C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\Hostx64\\x64
VS2017 的安装路径下面。
或者通过vs2017命令窗口
命令:
- DUMPBIN /ALL “E:\\neuvition\\neusdk\\sdk\\lib\\neuv_win_sdk.dll”>G:\\uxtheme.txt
转换后的txt文件比dll大的多,猜测是不是把dll内容解析并转换位文本了。
- 查看调用的dll
DUMPBIN -imports “E:\\具体路径****.dll”>G:\\uxtheme2.txt
打印了dll的信息,但是量比较多,查看不直观。
并且似乎不能现实调用的dll的再调用的dll。
-
导出信息
DUMPBIN /EXPORTS “E:\\具体路径****.dll”>G:\\uxtheme3.txt
可以导出dll中export 的函数名称
DLL:导出LIB,修改名字
用VS工具从dll导出lib
VS开发工具提供了两个命令行工具,一个是dumpbin.exe,另一个是lib.exe。利用这两个
工具即可从dll导出其对应的lib。
在VS命令行工具中执行:
dumpbin /exports yourdll.dll > yourdll.def
编辑yourdll.def文件,使之格式与.def文件格式一致。比如:
LIBRARY yourdll.dll EXPORTS fn1 fn2
在命令行执行:
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:
先用dll导出def:
pexports the_old_name.dll > name.def
修改def中LIBRARY后的名称
LIBRARY the_old_name.dll --> LIBRARY name.dll
用修改后的def导出新的lib
lib /def:name.def /machine:x64 /out:name.lib
用上面的name.lib作为导入库的程序,会以name.dll作为依赖库。再将the_old_name.dll改为name.dll就可以了。
以上是关于工具:dumpbin.exe : COFF DLL 动态库依赖库 :VS工具的主要内容,如果未能解决你的问题,请参考以下文章
将dumpbin从VS中抠出来,并使用dumpbin查看exe和dll库的依赖关系