バイナリ ファイル - Windows スタティック ライブラリ (*.lib) があります。
そのライブラリから関数の名前とそのインターフェイスを見つける簡単な方法はありますか?
emfar
およびelfdump
ユーティリティ (Linux システムの場合) に似たものはありますか?
バイナリ ファイル - Windows スタティック ライブラリ (*.lib) があります。
そのライブラリから関数の名前とそのインターフェイスを見つける簡単な方法はありますか?
emfar
およびelfdump
ユーティリティ (Linux システムの場合) に似たものはありますか?
静的ライブラリについて話していると仮定するとDUMPBIN /SYMBOLS
、ライブラリ内の関数とデータ オブジェクトが表示されます。インポート ライブラリ ( .lib
DLL からエクスポートされたシンボルを参照するために使用される) について話している場合は、 DUMPBIN /EXPORTS
.
「C」バイナリ インターフェイスにリンクされた関数の場合、これはまだ戻り値、パラメーター、または呼び出し規約を取得しないことに注意してください。その情報はまったくエンコードされていません.lib
。それらを正しく呼び出すには、事前に (たとえば、ヘッダー ファイルのプロトタイプを介して) 知っておく必要があります。
C++ バイナリ インターフェイスにリンクされた関数の場合、呼び出し規則と引数は、関数のエクスポートされた名前にエンコードされます (「名前マングリング」とも呼ばれます)。 DUMPBIN /SYMBOLS
「マングルされた」関数名とデコードされたパラメーターのセットの両方が表示されます。
ar t libfile.a
UNIXのようなツールが欲しかった。
Windows に相当するものはlib.exe /list libfile.lib
.
LIB.EXE は VS のライブラリアンです。
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(Unix の libtool のように)
DUMPBIN /EXPORTS はその情報のほとんどを取得し、MSDN にアクセスすると残りが取得されます。
Visual Studio パッケージの 1 つを入手します。C++
1) VS 2017 (またはマシンにインストールされているバージョン) の開発者コマンド プロンプトを開きます ([スタート] メニュー --> [すべてのプログラム] --> Visual Studio 2017 (またはマシンにインストールされているバージョン) の下にあります)。 --> Visual Studio ツール --> VS 2017 の開発者コマンド プロンプト。
2) 次のコマンドを入力します。
dumpbin /EXPORTS my_lib_name.lib