获取DLL动态库的版本信息(dumpbin.exe)
目录
背景
1、正确使用VS里的工具的方法如下:
2、使用 Dumpbin 分析二进制文件
常用命令示例
运行环境与提示
背景
生成的动态库名字一样的,有时候无法区别这个动态库是哪个,就可以通过查看动态库的版本信息来得知。
如 Windows 自带的 wmic
命令,或使用 Visual Studio 附带的 signtool.exe
、dumpbin.exe
主要介绍dumpbin.exe:
1、正确使用VS里的工具的方法如下:
(1)Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts\VS2013 开发人员命令提示。
[单击]打开CMD界面,单击会执行很多东西,然后进入了VS工具所在路径下
(2)可以直接在命令行下输入dumpbin就可以查看他的使用说明,如果未显示,可以先运行VS安装目录下的vcvarsall.bat来设置一下环境变量就可以了
(3)可以通过输入命名行查看动态库的版本信息:
2、使用 Dumpbin 分析二进制文件
Dumpbin 是分析 PE(Portable Executable)文件(如 EXE、DLL、LIB 等)的强力工具,可查看文件头、导出/导入函数、依赖项等信息。
常用命令示例
-
查看文件头信息(判断32/64位,编译时间戳):
dumpbin /headers MyApp.exe
在输出中,可以关注 “FILE HEADER VALUES” 下的 Machine
字段(标识目标架构,如 x86 或 x64)和 Time Date Stamp
字段(文件的创建时间戳,UNIX 时间格式)。
-
查看 DLL 的导出函数:
dumpbin /exports MyDll.dll
输出会显示函数序号(ordinal)、相对虚拟地址(RVA)和函数名。这对于理解 DLL 提供了哪些功能接口非常有用。
-
查看文件的依赖项(引用了哪些 DLL):
dumpbin /dependents MyApp.exe
会列出程序运行所需的所有动态链接库(DLL),帮助排查“缺少 DLL”的错误。
-
查看文件的导入函数(调用了哪些外部函数):
dumpbin /imports MyApp.exe
显示从每个依赖的 DLL 中导入了哪些具体的函数。
-
反汇编代码段:
dumpbin /disasm /section:.text MyApp.exe
这会反汇编指定节区(如 .text 代码段)的机器码
运行环境与提示
和 signtool
一样,dumpbin
也需要在 Visual Studio Developer Command Prompt 中运行,或者确保你的系统 PATH 环境变量已指向 Visual Studio 的 VC 工具目录。如果遇到“命令未找到”的错误,请检查环境。