Wie die Inhalte der Windows-Bibliothek finden (* LIB)
-
08-07-2019 - |
Frage
Ich habe eine Binärdatei -. Windows-statische Bibliothek (* .lib)
Gibt es eine einfache Möglichkeit, Namen der Funktionen, um herauszufinden, und ihre Schnittstelle aus dieser Bibliothek?
Etwas ähnliches wie emfar
und elfdump
Utilities (auf Linux-Systemen)?
Lösung
Sie sprechen über eine statische Bibliothek Unter der Annahme, zeigt DUMPBIN /SYMBOLS
die Funktionen und Datenobjekte in der Bibliothek. Wenn Sie über eine Import-Bibliothek reden (a .lib
verwendet, um Symbole aus einer DLL exportierten beziehen), dann mögen Sie DUMPBIN /EXPORTS
.
Beachten Sie, dass Funktionen für mit der „C“ Binärschnittstelle verknüpfen, wird dies immer noch nicht erhalten Sie Rückgabewerte, Parameter oder Aufrufkonvention. Diese Informationen werden nicht in der .lib
codiert; müssen Sie dies vor der Zeit (über Prototypen in Header-Dateien, zum Beispiel) kennen, um sie richtig zu nennen.
Für verknüpfte Funktionen mit dem C ++ Binärschnittstelle, die Aufrufkonvention und Argumente in den exportierten Namen der Funktion codiert werden (auch genannt „namen Mangeln“). DUMPBIN /SYMBOLS
zeigt Ihnen sowohl die „verstümmelte“ Funktionsnamen sowie den decodierten Satz von Parametern.
Andere Tipps
Öffnen Sie eine visuelle Befehlskonsole (Visual Studio-Eingabeaufforderung)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
oder
lib /LIST openssl.x86.lib
oder nur öffnen Sie es mit 7-zip :) sein ein AR-Archiv
Ich wollte ein Tool wie ar t libfile.a
in Unix.
Das Fenster entspricht lib.exe /list libfile.lib
.
LIB.EXE ist der Bibliothekar für VS
http://msdn.microsoft.com/en -US / library / 7ykb2k5f (VS.80) aspx
(wie libtool auf Unix)
"dumpbin -exports" arbeitet für dll, aber manchmal für lib möglicherweise nicht. Für lib können wir "dumpbin -linkermember" oder einfach ": 1 dumpbin -linkermember" verwenden.
DUMPBIN / exports werden die meisten dieser Informationen erhalten und schlagen MSDN wird den Rest bekommen.
eines der Visual Studio-Pakete Get; C ++
1) Öffnen Sie eine Eingabeaufforderung Entwickler für VS 2017 (oder was auch immer Version auf Ihrem Rechner) (Es sollte unter befinden: Startmenü -> Alle Programme -> Visual Studio 2017 (oder was auch immer Version Sie haben auf Ihr Gerät) -> Visual Studio-tools -.> Entwicklereingabeaufforderung für VS 2017
2) Geben Sie den folgenden Befehl ein:
dumpbin /EXPORTS my_lib_name.lib
Wie es in anderen Antworten zu sehen ist es eine Entwickler-Eingabeaufforderung angeboten in Ihrer Version von Visual Studio öffnen muß dumpbin.exe
in Ihrem Ausführungspfad zu haben. Ansonsten können Sie die notwendigen Umgebungsvariablen von Hand eingestellt.
dumpbin /EXPORTS yourlibrary.lib
zeigt in der Regel nur eine kleine Liste von Symbolen. In vielen Fällen wird es nicht die Funktionen der Bibliothek Exporte zeigen.
dumpbin /SYMBOLS /EXPORTS yourlibrary.lib
wird zeigen, dass Symbole, sondern auch eine unglaublich große Menge an anderen SymbOS. So bekam man sich zu filtern, möglicherweise mit einem Rohr findstr
(wenn Sie ein MS-Windows-Tool wollen) oder grep
.
Suche im Static
Schlüsselwort eines dieser Tools scheint ein guter Hinweis zu sein.