2008-11-20 11 views

Antwort

146

Angenommen, Sie über eine statische Bibliothek sprechen, DUMPBIN /SYMBOLS zeigt die Funktionen und Datenobjekte in die Bibliothek. Wenn Sie über eine Importbibliothek sprechen (eine .lib, die verwendet wird, um auf Symbole zu verweisen, die aus einer DLL exportiert wurden), dann möchten Sie DUMPBIN /EXPORTS.

Beachten Sie, dass dies für Funktionen, die mit der binären Schnittstelle "C" verknüpft sind, immer noch keine Rückgabewerte, Parameter oder Aufrufkonventionen liefert. Diese Information ist überhaupt nicht in der .lib kodiert; Das müssen Sie vorher wissen (zB über Prototypen in Header-Dateien), um sie korrekt aufzurufen.

Für mit der C++ Binärschnittstelle verknüpften Funktionen werden die Aufrufkonvention und Argumente in den exportierten Namen der Funktion (auch als „namen Mangeln“) kodiert. DUMPBIN /SYMBOLS zeigt Ihnen sowohl den Namen der "entstellten" Funktion als auch den decodierten Parametersatz.

10

DUMPBIN/EXPORTS erhalten die meisten dieser Informationen und schlagen MSDN wird den Rest bekommen.

Rufen Sie eines der Visual Studio-Pakete ab. C++

+0

Haben Sie gute Erweiterungsnamen für VS? – Damian

20

Ich wollte ein Werkzeug wie ar t libfile.a in Unix.
Das Windows-Äquivalent ist lib.exe /list libfile.lib.

+1

Ja lib wird (nur) die obj-Dateien anzeigen; Es zeigt nicht die Funktionen und Daten in den Obj-Dateien. – user34660

2

1) Öffnen Sie eine visuelle Befehlskonsole (Tools/Visual Studio-Eingabeaufforderung). 2) Geben Sie "Dumpbin/Ausfuhren my_lib_name.lib"

37

Öffnen Sie eine visuelle Befehlskonsole (Visual Studio-Eingabeaufforderung)

dumpbin /ARCHIVEMEMBERS openssl.x86.lib 

oder

lib /LIST openssl.x86.lib 

oder es nur mit 7- öffnen zip :) sein ein AR-Archiv

+0

Ich wusste nie, dass Sie .lib-Dateien mit 7-zip öffnen können, vielen Dank! – KymikoLoco

+3

Cooler Trick mit 7-Zip dort scheint es zwei .txt-Dateien zu geben, was bedeuten sie? – Damian

+0

Danke für "oder öffne es einfach mit 7-zip :) es ist ein AR Archiv" –

4

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

Verwandte Themen