231 Stimmen

Wie man den Inhalt der Windows-Bibliothek (*.lib) sieht

Ich habe eine Binärdatei - eine statische Windows-Bibliothek (*.lib).
Gibt es eine einfache Möglichkeit, die Namen der Funktionen und ihre Schnittstelle aus dieser Bibliothek herauszufinden?

Etwas Ähnliches wie emfar y elfdump Dienstprogramme (auf Linux-Systemen) ?

238voto

Tim Lesher Punkte 6062

Angenommen, Sie sprechen von einer statischen Bibliothek, DUMPBIN /SYMBOLS zeigt die Funktionen und Datenobjekte in der Bibliothek. Wenn es sich um eine Importbibliothek handelt (eine .lib verwendet, um auf Symbole zu verweisen, die aus einer DLL exportiert werden), dann wollen Sie DUMPBIN /EXPORTS .

Beachten Sie, dass für Funktionen, die mit der "C"-Binärschnittstelle verknüpft sind, dadurch immer noch keine Rückgabewerte, Parameter oder Aufrufkonventionen erhalten werden. Diese Informationen sind nicht in der .lib Sie müssen das im Voraus wissen (z. B. über Prototypen in Header-Dateien), um sie korrekt aufrufen zu können.

Bei Funktionen, die mit der C++-Binärschnittstelle verknüpft sind, werden die Aufrufkonvention und die Argumente im exportierten Namen der Funktion kodiert (auch "name mangling" genannt). DUMPBIN /SYMBOLS zeigt Ihnen sowohl den "entstellten" Funktionsnamen als auch den entschlüsselten Parametersatz an.

135voto

Tanguy Punkte 2057

Öffnen Sie eine Visual Studio-Eingabeaufforderung

dumpbin /ARCHIVEMEMBERS openssl.x86.lib

oder

lib /LIST openssl.x86.lib

o öffnen Sie es einfach mit 7-zip :) es ist ein AR-Archiv

22voto

lgwest Punkte 1337

Ich wollte ein Werkzeug wie ar t libfile.a unter Unix.
Die Windows-Entsprechung lautet lib.exe /list libfile.lib .

20voto

Frank Punkte 477

"dumpbin -exports" funktioniert für dll, aber manchmal nicht für lib. Für lib können wir "dumpbin -linkermember" oder einfach "dumpbin -linkermember:1" verwenden.

16voto

Lou Franco Punkte 85315

LIB.EXE ist das Bibliotheksprogramm für VS

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

(wie libtool unter Unix)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X