2008-11-20 7 views

Respuesta

146

Asumiendo que estamos hablando de una biblioteca estática, DUMPBIN /SYMBOLS muestra las funciones y objetos de datos en la biblioteca. Si está hablando de una biblioteca de importación (un .lib utilizado para referirse a los símbolos exportados desde una DLL), quiere DUMPBIN /EXPORTS.

Tenga en cuenta que para las funciones vinculadas con la interfaz binaria "C", esto no le devolverá valores, parámetros o convenciones de llamadas. Esa información no está codificada en el .lib en absoluto; debe saberlo con anticipación (a través de prototipos en archivos de encabezado, por ejemplo) para poder llamarlos correctamente.

Para las funciones vinculadas con la interfaz binaria de C++, la convención de llamada y los argumentos están codificados en el nombre exportado de la función (también llamado "mangle"). DUMPBIN /SYMBOLS le mostrará tanto el nombre de la función "destrozada" como el conjunto decodificado de parámetros.

10

DUMPBIN/EXPORTACIONES Obtendrá la mayor parte de esa información y al llegar a MSDN obtendrá el resto.

Obtenga uno de los paquetes de Visual Studio; C++

+0

¿Tiene algún buen nombre de extensión para VS? – Damian

20

Yo quería una herramienta como ar t libfile.a en Unix.
El equivalente de Windows es lib.exe /list libfile.lib.

+1

Sí lib (solo) mostrará los archivos obj; no mostrará las funciones y los datos en los archivos obj. – user34660

2

1) Abra una consola de comandos visual (Herramientas/Visual Studio Command Prompt). 2) Introduzca "DUMPBIN/Exportaciones my_lib_name.lib"

37

Abrir una consola de comandos visual (Visual Studio Símbolo del sistema)

dumpbin /ARCHIVEMEMBERS openssl.x86.lib 

o

lib /LIST openssl.x86.lib 

o simplemente abrirlo con 7- zip :) es un archivo AR

+0

Nunca imaginé que podrías abrir archivos .lib con 7-zip, ¡muchas gracias! – KymikoLoco

+3

Buen truco con 7-zip parece que hay dos archivos .txt ¿Qué significan? – Damian

+0

Gracias por "o simplemente ábralo con 7-zip :) es un archivo AR" –

4

"dumpbin -exportaciones" trabaja para DLL, pero a veces puede no funcionar para lib. Para lib podemos usar "dumpbin -linkermember" o simplemente "dumpbin -linkermember: 1".

Cuestiones relacionadas