una - Cómo ver los contenidos de la biblioteca de Windows(*.lib)
incluir librerias propias en c++ (8)
Tengo un archivo binario: biblioteca estática de Windows (* .lib).
¿Existe una manera simple de descubrir los nombres de las funciones y su interfaz de esa biblioteca?
Algo similar a las utilidades emfar
y elfdump
(en sistemas Linux)?
"dumpbin -exports" funciona para dll, pero a veces puede no funcionar para lib. Para lib podemos usar "dumpbin -linkermember" o simplemente "dumpbin -linkermember: 1".
1) Abra un símbolo del sistema del desarrollador para VS 2017 (o la versión que tenga en su máquina) (Debe estar ubicado en: menú Inicio -> Todos los programas -> Visual Studio 2017 (o la versión que tenga en su máquina) -> Herramientas de Visual Studio -> Símbolo del sistema de desarrollador para VS 2017.
2) Ingrese el siguiente comando:
dumpbin /EXPORTS my_lib_name.lib
Abra una consola de comandos visual (Símbolo del sistema de Visual Studio)
dumpbin /ARCHIVEMEMBERS openssl.x86.lib
o
lib /LIST openssl.x86.lib
o simplemente ábrelo con 7-zip :) es un archivo AR
LIB.EXE es el bibliotecario de VS
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(como libtool en Unix)
Nota: El símbolo del sistema específico de .NET viene con las ediciones de Visual Studio pero no con la edición Express.
Quería una herramienta como ar t libfile.a
en Unix.
El equivalente de Windows es lib.exe /list libfile.lib
.
Suponiendo que está hablando de una biblioteca estática, DUMPBIN /SYMBOLS
muestra las funciones y los objetos de datos en la biblioteca. Si está hablando de una biblioteca de importación (una .lib
utilizada para referirse a símbolos exportados desde una DLL), entonces 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 .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 de nombre"). DUMPBIN /SYMBOLS
le mostrará tanto el nombre de la función "destrozada" como el conjunto decodificado de parámetros.