Maison >développement back-end >C++ >Comment puis-je déterminer l'architecture (x86 ou x64) d'une DLL native à partir du code managé ?

Comment puis-je déterminer l'architecture (x86 ou x64) d'une DLL native à partir du code managé ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-30 16:45:16360parcourir

How Can I Determine the Architecture (x86 or x64) of a Native DLL from Managed Code?

Comment identifier l'architecture d'une DLL native à partir du code managé

Dans les applications de code managé, déterminer l'architecture (x64 ou x86) de un assembly natif peut être crucial pour assurer la compatibilité. Bien que l'en-tête PE contienne ces informations, il peut être difficile de l'analyser directement.

Utilisation de l'utilitaire DUMPBIN

L'utilitaire DUMPBIN fournit un moyen efficace de récupérer l'architecture de une DLL native. En passant l'indicateur /headers ou /all, vous pouvez afficher les en-têtes PE, y compris le type de machine.

  • DLL 64 bits :

    dumpbin /headers cv210.dll |find "machine"
          8664 machine (x64)
  • 32 bits DLL :

    dumpbin /headers acrdlg.dll |find "machine"
               14C machine (x86)

Méthodes alternatives

Pour les scénarios avancés, vous pouvez analyser l'en-tête PE manuellement à l'aide du C natif. Cependant, l'utilitaire DUMPBIN simplifie le processus dans la plupart des cas.

Remarque : Le champ de type de machine dans l'en-tête PE indique l'architecture prévue de la DLL, qui ne correspond pas nécessairement à l'architecture réelle. le nombre de bits du système sur lequel il fonctionne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn