web-dev-qa-db-fra.com

Avoir une bibliothèque statique, existe-t-il un moyen simple de savoir que c'est pour 32 bits ou 64 bits?

Y at-il un outil qui peut directement tester si une bibliothèque est faite pour 32 ou 64 bits?

55
user705414

Vous pouvez utiliser l'utilitaire dumpbin avec l'option /headers

Il indique si la bibliothèque a été construite pour une architecture 32 ou 64 bits.

Vérifiez ici pour plus de détails.

Exemple d'utilisation: 

c:\>dumpbin libXYZ.lib /headers
49
Alok Save

Exécutez une invite de Visual Studio pour vous assurer que votre chemin peut trouver dumpbin.exe.

Pipe pour findstr pour économiser sur chaque section et vous pouvez éventuellement utiliser un caractère générique pour analyser un dossier de bibliothèques. 

dumpbin /headers *.lib | findstr machine

Exemple de ce que vous recherchez;

8664 machine (x64)
49
Jet Set Willy

Je n'ai pas essayé cela, mais vous pouvez aussi utiliser file.exe, l'équivalent unix file sous Windows . Vous pouvez télécharger le binaire (et le source également) depuis ici ou version GNU ici

1
Vikram.exe

Dans Visual Studio, nous pouvons savoir si Lib/dll est 32 ou 64 bits avec Coreflags.exe Cet outil est automatiquement installé avec Visual Studio . Nous pouvons exécuter cette commande à partir de la ligne de commande, qui courir comme 

 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\CorFlags.exe whatever_Lib_with_path

Cette commande vous renverra si ce fichier est géré ou non géré . Si son managed alors il peut donner des informations à ce sujet est 32/64 bits.

0
Ayush joshi