Ho creato un progetto C++ a 64 bit in Visual Studio 2010 (in Windows 7 a 64 bit);Il programma 64bit vC++ sembra funzionare in modalità 32bit
ho pensato che stavo facendo funzionare un'applicazione a 64 bit, e il seguente codice tornato vero:
bool is64bit = (sizeof(void*)==8);
ma se ho chiamato la funzione IsWow64Process
, è tornato FALSE ...
Altro cose strane:
- chiamare
LoadLibrary()
per caricare una DLL sottoc:\windows\system32\some.dll
funziona bene - caricamento di una DLL in
c:\windows\sysWow64\some.dll
fallirà (codice di errore 193: some.dll non è un'applicazione di Win32 valida)
Tutti questi fallimenti suggeriscono l'applicazione è in esecuzione in modalità a 32 bit, ma questo è contro il vero il tipo di puntatore è 8 byte lunghezza
Sono confuso, ogni aiuto sarà apprezzato!
+1 Tutto ciò che l'OP descrive è coerente al 100% con un'applicazione a 64 bit su un sistema operativo a 64 bit. –
@DavidSchwartz Sì, le persone si confondono perché usare WoW64 significa che stai usando 32 bit, che è l'opposto di quello che penseresti dato il nome;) –
Bella risposta. Realizzare la differenza tra WoW64 e system32 mi ha dato un bel po 'di tempo fa. – nothrow