Comment savoir si une dll est 32bits ou 64bits ?
Point important pour vos développements natifs ou pour l’utilisation de composants COM sur plateformes x64 :
Un processus 64bits peut charger seulement des dlls 64bits. De la même manière, un processus 32bits peut charger seulement des dlls 32bits.
Ceci peut paraitre trivial comme affirmation, mais cela a son importance car un processus 64bits ne pourra donc pas charger de dll 32bits. L’inverse n’est pas possible non plus.
Voici la référence : https://msdn.microsoft.com/en-us/library/aa384231(VS.85).aspx
Ok, d’accord… Et pour la vérification, comment puis-je savoir si une dll est compilée en 32 ou 64 ?
Simplement avec l’outil DumpBin livré avec Visual Studio. Vous pouvez le lancer directement à partir de la ligne de commande Visual Studio 2008.
Par exemple :
dumpbin "C:\Windows\System32\inetsrv\asp.dll" /HEADERS |
dumpbin "C:\Windows\System32\inetsrv\asp.dll" /HEADERS | findstr "(x64)" |
dumpbin "C:\Windows\SysWOW64\inetsrv\asp.dll" /HEADERS | findstr "(x86)" |
Ca peut servir :-)
Bye,
Sebastien.