如何查看Windows库的内容(* .lib)
我有一个二进制文件 – Windows库(* .lib)。
有没有一种简单的方法来查找函数的名称和它的接口?
类似于emfar和elfdump公用程序?
假设你正在谈论一个静态库, DUMPBIN /SYMBOLS
显示了库中的函数和数据对象。 如果你正在谈论一个导入库(一个.lib
用于引用从DLL导出的符号),那么你需要DUMPBIN /EXPORTS
。
请注意,对于与“C”二进制接口链接的函数,这仍然不会返回值,参数或调用约定。 这些信息根本就不在.lib
中编码。 您必须提前知道(例如,通过头文件中的原型)才能正确调用它们。
对于与C ++二进制接口链接的函数,调用约定和参数在函数的导出名称(也称为“名称修改”)中进行编码。 DUMPBIN /SYMBOLS
将显示“mangled”函数名称以及解码后的参数集合。
打开一个可视化命令控制台(Visual Studio命令提示符)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
要么
lib /LIST openssl.x86.lib
或者只是用7-zip打开它 :)其AR档案
我想在unix中使用像ar t libfile.a
这样的工具。
等效的窗口是lib.exe /list libfile.lib
。
DUMPBIN / EXPORTS将得到大部分的信息,打MSDN将得到其余的。
获取一个Visual Studio包; C ++
1)打开一个可视化命令控制台(工具/ Visual Studio命令提示符)。 2)input“Dumpbin / Exports my_lib_name.lib”
注意:特定于.NET的命令提示符附带Visual Studio版本,但不包含Express版本。
From: https : //social.msdn.microsoft.com/Forums/en-US/9f4b8961-63eb-4062-bf3c-12f0126f0e80/how-to-get-visual-studio-command-prompt?forum=Vsexpressvb
“dumpbin -exports”适用于dll,但有时可能不适用于lib。 对于lib,我们可以使用“dumpbin -linkermember”或者“dumpbin -linkermember:1”。