J'ai un fichier binaire - bibliothèque statique Windows (* .lib).
Existe-t-il un moyen simple de trouver les noms des fonctions et leur interface à partir de cette bibliothèque?
Quelque chose de similaire à emfar
et elfdump
utilitaires (sur les systèmes Linux)?
windows
static-libraries
libraries
Nick Borodulin
la source
la source
Réponses:
En supposant que vous parlez d'une bibliothèque statique,
DUMPBIN /SYMBOLS
affiche les fonctions et les objets de données de la bibliothèque. Si vous parlez d'une bibliothèque d'importation (.lib
utilisée pour désigner des symboles exportés à partir d'une DLL), alors vous voulezDUMPBIN /EXPORTS
.Notez que pour les fonctions liées à l'interface binaire "C", cela ne vous permettra toujours pas de renvoyer des valeurs, des paramètres ou une convention d'appel. Cette information n'est pas du tout encodée dans le
.lib
; il faut le savoir à l'avance (via des prototypes dans des fichiers d'en-tête par exemple) pour les appeler correctement.Pour les fonctions liées à l'interface binaire C ++, la convention d'appel et les arguments sont encodés dans le nom exporté de la fonction (également appelé "mangling de nom").
DUMPBIN /SYMBOLS
vous montrera à la fois le nom de la fonction "mutilée" ainsi que l'ensemble décodé de paramètres.la source
Ouvrez une console de commande visuelle (invite de commandes Visual Studio)
ou
ou ouvrez-le simplement avec 7-zip :) c'est une archive AR
la source
Je voulais un outil comme
ar t libfile.a
sous unix.L'équivalent Windows est
lib.exe /list libfile.lib
.la source
"dumpbin -exports" fonctionne pour dll, mais peut parfois ne pas fonctionner pour lib. Pour lib, nous pouvons utiliser "dumpbin -linkermember" ou simplement "dumpbin -linkermember: 1".
la source
LIB.EXE est le bibliothécaire de VS
http://msdn.microsoft.com/en-us/library/7ykb2k5f(VS.80).aspx
(comme libtool sous Unix)
la source
DUMPBIN / EXPORTS obtiendra la plupart de ces informations et frapper MSDN obtiendra le reste.
Obtenez l'un des packages Visual Studio; C ++
la source
1) Ouvrez une invite de commande développeur pour VS 2017 (ou quelle que soit la version que vous avez sur votre machine) (elle doit être située sous: menu Démarrer -> Tous les programmes -> Visual Studio 2017 (ou quelle que soit la version que vous avez sur votre machine) -> Visual Studio Tools -> Invite de commandes pour les développeurs pour VS 2017.
2) Entrez la commande suivante:
dumpbin /EXPORTS my_lib_name.lib
la source
Comme cela peut être vu dans d'autres réponses, vous devrez ouvrir une invite de commande de développeur proposée dans votre version de Visual Studio pour avoir
dumpbin.exe
dans votre chemin d'exécution. Sinon, vous pouvez définir manuellement les variables d'environnement nécessaires.dumpbin /EXPORTS yourlibrary.lib
affichera généralement juste une petite liste de symboles. Dans de nombreux cas, il n'affiche pas les fonctions exportées par la bibliothèque.dumpbin /SYMBOLS /EXPORTS yourlibrary.lib
montrera ces symboles, mais aussi une quantité incroyablement énorme d'autres symbos. Vous devez donc les filtrer, éventuellement avec un tube versfindstr
(si vous voulez un outil MS-Windows), ougrep
.La recherche du
Static
mot - clé à l'aide de l'un de ces outils semble être un bon indice.la source