我有一个二进制文件 - Windows静态库(*.lib).
有没有一种简单的方法可以从该库中找出函数及其接口的名称?
类似于emfar
和elfdump
实用程序(在Linux系统上)?
假设您正在谈论静态库,则DUMPBIN /SYMBOLS
显示库中的函数和数据对象.如果您正在谈论导入库(.lib
用于引用从DLL导出的符号),那么您需要DUMPBIN /EXPORTS
.
请注意,对于与"C"二进制接口链接的函数,这仍然不会返回值,参数或调用约定.该信息根本没有编码.lib
; 您必须提前知道(例如,通过头文件中的原型)才能正确调用它们.
对于与C++二进制接口链接的函数,调用约定和参数在函数的导出名称中编码(也称为"名称修改"). DUMPBIN /SYMBOLS
将显示"受损"函数名称以及已解码的参数集.
打开可视命令控制台(Visual Studio命令提示符)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
要么
lib /LIST openssl.x86.lib
或者只是用7-zip打开它 :)它是一个AR档案
我想要一个像ar t libfile.a
unix 一样的工具.
窗户相当于lib.exe /list libfile.lib
.
LIB.EXE是VS的图书管理员
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(比如Unix上的libtool)
"dumpbin -exports"适用于dll,但有时可能不适用于lib.对于lib,我们可以使用"dumpbin -linkermember"或"dumpbin -linkermember:1".
DUMPBIN/EXPORTS将获得大部分信息,并且击中MSDN将获得其余的信息.
获取一个Visual Studio包; C++