Come visualizzare il contenuto della libreria di Windows (* .lib)
-
08-07-2019 - |
Domanda
Ho un file binario - libreria statica di Windows (* .lib).
Esiste un modo semplice per scoprire i nomi delle funzioni e della loro interfaccia da quella libreria?
Qualcosa di simile ai programmi di utilità emfar
e elfdump
(su sistemi Linux)?
Soluzione
Supponendo che stai parlando di una libreria statica, DUMPBIN / SYMBOLS
mostra le funzioni e gli oggetti dati nella libreria. Se stai parlando di una libreria di importazione (un .lib
usato per riferirsi ai simboli esportati da una DLL), allora vuoi DUMPBIN / EXPORTS
.
Nota che per le funzioni collegate con " C " interfaccia binaria, questo non ti restituirà valori, parametri o convenzioni di chiamata. Quelle informazioni non sono affatto codificate nel .lib
; devi saperlo in anticipo (tramite prototipi nei file di intestazione, ad esempio) per poterli chiamare correttamente.
Per le funzioni collegate con l'interfaccia binaria C ++, la convenzione di chiamata e gli argomenti sono codificati nel nome esportato della funzione (chiamato anche "nome mangling"). DUMPBIN / SYMBOLS
ti mostrerà sia il "quotato a terra" nome della funzione e insieme di parametri decodificati.
Altri suggerimenti
Apri una console dei comandi visivi (prompt dei comandi di Visual Studio)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
o
lib /LIST openssl.x86.lib
o basta aprirlo con 7-zip :) è un archivio AR
Volevo uno strumento come ar t libfile.a
in unix.
L'equivalente di Windows è lib.exe / list libfile.lib
.
LIB.EXE è il bibliotecario di VS
http://msdn.microsoft.com/en -us / library / 7ykb2k5f (VS.80) aspx
(come libtool su Unix)
"dumpbin -exports" funziona per DLL, ma a volte potrebbe non funzionare per lib. Per lib possiamo usare " dumpbin -linkermember " o semplicemente " dumpbin -linkermember: 1 " ;.
DUMPBIN / EXPORTS Otterrà la maggior parte di tali informazioni e premendo MSDN otterrà il resto.
Ottieni uno dei pacchetti di Visual Studio; C ++
1) Apri un prompt dei comandi per sviluppatori per VS 2017 (o qualunque versione tu abbia sul tuo computer) (Dovrebbe trovarsi sotto: Menu Start - > Tutti i programmi - > Visual Studio 2017 (o qualunque versione tu sulla tua macchina) - > Visual Studio Tools - > Prompt dei comandi per sviluppatori per VS 2017.
2) Immettere il comando seguente:
dumpbin / EXPORTS my_lib_name.lib
Come si può vedere in altre risposte, dovrai aprire un Prompt dei comandi per gli sviluppatori offerto nella tua versione di Visual Studio per avere dumpbin.exe
nel tuo percorso di esecuzione. Altrimenti, puoi impostare manualmente le variabili d'ambiente necessarie.
dumpbin / EXPORTS yourlibrary.lib
di solito mostra solo un piccolo elenco di simboli. In molti casi, non mostrerà le funzioni esportate dalla libreria.
dumpbin / SYMBOLS / EXPORTS yourlibrary.lib
mostrerà quei simboli, ma anche una quantità incredibilmente enorme di altri simboli. Quindi, devi filtrarli, possibilmente con una pipe su findstr
(se vuoi uno strumento MS-Windows) o grep
.
Cercare la parola chiave Static
usando uno di questi strumenti sembra essere un buon suggerimento.