我有一個二進制文件-Windows靜態庫(* .lib)。有沒有一種簡單的方法可以從該庫中找出函數的名稱及其接口?類似于emfar和elfdump實用程序(在Linux系統上)?
3 回答

慕仙森
TA貢獻1827條經驗 獲得超8個贊
假設您正在談論靜態庫,請DUMPBIN /SYMBOLS
顯示庫中的函數和數據對象。如果您在談論導入庫(.lib
用于引用從DLL導出的符號),則需要DUMPBIN /EXPORTS
。
請注意,對于與“ C”二進制接口鏈接的函數,這仍然無法使您返回值,參數或調用約定。這些信息根本沒有被編碼.lib
。您必須提前知道(例如,通過頭文件中的原型),以便正確調用它們。
對于與C ++二進制接口鏈接的函數,調用約定和參數編碼在函數的導出名稱中(也稱為“名稱修改”)。 DUMPBIN /SYMBOLS
將同時顯示“混合的”函數名稱以及已解碼的參數集。

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
打開可視命令控制臺(Visual Studio命令提示符)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
要么
lib /LIST openssl.x86.lib
或僅使用7-zip打開它:)其AR檔案

慕哥6287543
TA貢獻1831條經驗 獲得超10個贊
1)打開VS 2017的開發人員命令提示符(或計算機上具有的任何版本)(應位于以下位置:開始菜單->所有程序-> Visual Studio 2017(或計算機上具有的任何版本) -> Visual Studio工具-> VS 2017的開發人員命令提示符。
2)輸入以下命令:
dumpbin /EXPORTS my_lib_name.lib
- 3 回答
- 0 關注
- 2133 瀏覽
添加回答
舉報
0/150
提交
取消