Vous avez une librairie statique, y a-t-il un moyen simple de savoir que c’est pour 32 bits ou 64 bits?

Existe-t-il un outil permettant de tester directement si une bibliothèque est conçue pour 32 ou 64 bits?

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

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 

Lancez une invite de commandes Visual Studio pour vous assurer que votre chemin peut trouver dumpbin.exe

Pipe to findstr pour économiser sur le gros spew de chaque section et vous pouvez éventuellement utiliser un joker pour parsingr un dossier de libs.

dumpbin /headers *.lib | findstr machine

Exemple de ce que vous cherchez

 8664 machine (x64) 

Je n’ai pas essayé cela, mais vous pouvez également utiliser file.exe , l’équivalent du file unix sur Windows. Vous pouvez télécharger le binary (et la source également) à partir d’ ici ou de la version gnu ici

En Visual Studio, nous pouvons savoir si Lib / dll a 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 peut être exécutée 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 c’est géré alors il peut donner des informations à ce sujet est 32/64 bit.