215

バイナリ ファイル - Windows スタティック ライブラリ (*.lib) があります。
そのライブラリから関数の名前とそのインターフェイスを見つける簡単な方法はありますか?

emfarおよびelfdumpユーティリティ (Linux システムの場合) に似たものはありますか?

4

8 に答える 8

224

静的ライブラリについて話していると仮定するとDUMPBIN /SYMBOLS、ライブラリ内の関数とデータ オブジェクトが表示されます。インポート ライブラリ ( .libDLL からエクスポートされたシンボルを参照するために使用される) について話している場合は、 DUMPBIN /EXPORTS.

「C」バイナリ インターフェイスにリンクされた関数の場合、これはまだ戻り値、パラメーター、または呼び出し規約を取得しないことに注意してください。その情報はまったくエンコードされていません.lib。それらを正しく呼び出すには、事前に (たとえば、ヘッダー ファイルのプロトタイプを介して) 知っておく必要があります。

C++ バイナリ インターフェイスにリンクされた関数の場合、呼び出し規則と引数は、関数のエクスポートされた名前にエンコードされます (「名前マングリング」とも呼ばれます)。 DUMPBIN /SYMBOLS「マングルされた」関数名とデコードされたパラメーターのセットの両方が表示されます。

于 2008-11-20T14:31:02.167 に答える
22

ar t libfile.aUNIXのようなツールが欲しかった。
Windows に相当するものはlib.exe /list libfile.lib.

于 2011-01-20T20:35:36.483 に答える
15

LIB.EXE は VS のライブラリアンです。

http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx

(Unix の libtool のように)

于 2008-11-20T14:16:50.900 に答える
14

DUMPBIN /EXPORTS はその情報のほとんどを取得し、MSDN にアクセスすると残りが取得されます。

Visual Studio パッケージの 1 つを入手します。C++

于 2008-11-20T13:46:02.943 に答える
4

1) VS 2017 (またはマシンにインストールされているバージョン) の開発者コマンド プロンプトを開きます ([スタート] メニュー --> [すべてのプログラム] --> Visual Studio 2017 (またはマシンにインストールされているバージョン) の下にあります)。 --> Visual Studio ツール --> VS 2017 の開発者コマンド プロンプト。

2) 次のコマンドを入力します。

dumpbin /EXPORTS my_lib_name.lib

于 2014-02-11T13:54:54.467 に答える