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

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

Barbara Streisand
Barbara Streisandoriginal
2024-12-28 03:54:08608parcourir

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

Détermination de l'architecture d'une DLL native en code managé

Pour déterminer l'architecture (x64 ou x86) d'une DLL native, vous pouvez utilisez l’en-tête PE. Ces informations sont essentielles pour que le chargeur du système d'exploitation exécute correctement la DLL.

Une option pour extraire ces données consiste à utiliser l'utilitaire DUMPBIN. Utilisez l'indicateur /headers ou /all, et le premier en-tête de fichier répertorié fournira les informations sur l'architecture. Voici un exemple :

DLL 64 bits :

dumpbin /headers cv210.dll
Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file cv210.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
            8664 machine (x64)
               6 number of sections
        4BBAB813 time date stamp Tue Apr 06 12:26:59 2010
               0 file pointer to symbol table
               0 number of symbols
              F0 size of optional header
            2022 characteristics
                   Executable
                   Application can handle large (>2GB) addresses
                   DLL

DLL 32 bits :

dumpbin /headers acrdlg.dll
Microsoft (R) COFF/PE Dumper Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file acrdlg.dll

PE signature found

File Type: DLL

FILE HEADER VALUES
             14C machine (x86)
               5 number of sections
        467AFDD2 time date stamp Fri Jun 22 06:38:10 2007
               0 file pointer to symbol table
               0 number of symbols
              E0 size of optional header
            2306 characteristics
                   Executable
                   Line numbers stripped
                   32 bit word machine
                   Debug information stripped
                   DLL

Pour simplifier le processus, utilisez find comme suit :

dumpbin /headers cv210.dll |find "machine"
        8664 machine (x64)

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