2010-11-03 11 views
6

Necesito saber si un .exe dado es de 32 bits o de 64 bits, antes de Lo lanzo. IsWow64Process no sirve para nada, ya que todavía no hay ningún proceso. ¿Hay alguna otra API que me dé esta información?Programar determinar si native .exe es de 32 bits o de 64 bits

+1

posible duplicado de [¿Cómo encontrarlo si DLL nativa se compila como x64 o x86?] (Http://stackoverflow.com/questions/480696/how-to-find-if-native-dll-is- compiled-as-x64-or-x86) –

+0

En realidad, retiro el dup - esto es mucho más fácil para EXEs que para DLL, parece. –

Respuesta

11

Si realmente solo desea hacer esto para EXEs y no para DLL, solo use GetBinaryType.

determina si un archivo es un archivo de ejecutable (.exe), y si es así, qué subsistema ejecuta el archivo ejecutable .

+0

Sí, esto es * exactamente * lo que quiero, y es mucho más fácil que leer el encabezado PE yo mismo, que es lo que el otras respuestas sugeridas. Gracias. –

+1

Tienes suerte de que solo necesites EXE :-) Esas complejas contorsiones parecen necesarias para hacer esto para las DLL. Una brecha en Win32, imo. –

5

Este post seguramente le ayudará.

Está relacionado con C pero le dará la idea.

+0

+1 por hacerlo de la manera correcta :) – Flexo

+0

+1, iba a proponer esto :) – ruslik

1

Esta información está disponible en uno de los encabezados del PE File file format (el formato utilizado para los archivos exe y dll). La información en estos encabezados se puede extraer mediante programación (están en un desplazamiento especificado) o se puede consultar de forma más segura a través de la API de Win32.

De acuerdo, Liviu obtuvo el puntero correcto para usted.

Cuestiones relacionadas