2010-11-03 10 views
6

Ho bisogno di sapere se un determinato file .exe è a 32 bit oa 64 bit, prima dello lo avvio. IsWow64Process è inutile qui, poiché non c'è ancora un processo. C'è qualche altra API che mi fornirà queste informazioni?Determina in modo statico se nativo .exe è a 32 bit o 64 bit

+1

possibile duplicato di [Come trovare se la DLL nativa è compilata come x64 o x86?] (Http://stackoverflow.com/questions/480696/how-to-find-if-native-dll-is- compiled-as-x64-or-x86) –

+0

In realtà, ritiro il duplicato - questo è molto più semplice per EXE che per DLL, a quanto pare. –

risposta

11

Se si desidera solo eseguire ciò per EXE e non DLL, utilizzare solo GetBinaryType.

determina se un file è un file eseguibile (.exe), e in caso affermativo, quale sottosistema esegue il file eseguibile .

+0

Sì, questo è * esattamente * quello che voglio, ed è molto più facile che leggere l'intestazione PE me stesso, che è ciò che il altre risposte suggerite. Grazie. –

+1

Sei fortunato hai solo bisogno di EXE :-) Queste contorsioni complesse appaiono necessarie per fare questo per le DLL. Un vuoto in Win32, imo. –

5

Questo post ti aiuterà sicuramente.

È correlato a C# ma ti darà l'idea.

+0

+1 per farlo nel modo giusto :) – Flexo

+0

+1, stavo per proporre questo :) – ruslik

1

Queste informazioni sono disponibili in una delle intestazioni di PE File file format (il formato utilizzato per exe e dll). Le informazioni in queste intestazioni possono essere estratte a livello di programmazione (sono in un offset specificato) o più facilmente interrogate tramite l'API Win32.

OK, Liviu ha ottenuto il puntatore corretto per te.

Problemi correlati