6
votes

Déterminer par programme si natif .exe est 32 bits ou 64 bits

J'ai besoin de savoir si une donnée donnée est 32 bits ou un 64 bits, avant je le lance. Iswow64Process n'est pas une utilisation ici, car il n'y a pas encore de processus. Y a-t-il une autre API qui me donnera ces informations?


2 commentaires

Dupliqué possible de Comment trouver si natif DLL est compilé comme x64 ou x86?


En fait, je retire le DUP - c'est beaucoup plus facile pour EXES que pour les DLL, semble-t-il.


3 Réponses :


5
votes

Ce POST aidera sûrement vous.

C # est associé mais cela vous donnera l'idée.


0 commentaires

1
votes

Cette information est disponible dans l'un des en-têtes du Format de fichier de fichier PE (le format utilisé pour les exe et les dll). Les informations contenues dans ces en-têtes peuvent être extraites par programme (elles sont à un décalage spécifié) ou plus en toute sécurité via l'API Win32.

D'accord, Liviu a eu le pointeur correct pour vous.


0 commentaires

11
votes

Si vous voulez vraiment seulement faire cela pour des exes et non des dlls, utilisez simplement GetBinyType .

détermine si un fichier est un Fichier exécutable (.exe), et si oui, Quel sous-système exécute l'exécutable Fichier.


2 commentaires

Oui, c'est exactement ce que je veux, et c'est beaucoup plus facile que de lire l'en-tête PE moi-même, ce que sont les autres réponses suggérées. Merci.


Vous avez de la chance que vous ayez juste besoin d'exes :-) Ces contorsions complexes semblent nécessaires pour le faire pour les DLL. Un écart dans Win32, imo.