Visual Studio 2010 (Windows 7 64 비트)에서 64 비트 C++ 프로젝트를 만들었습니다. 내가 64 비트 응용 프로그램을 실행하고, 다음과 같은 코드가 사실 반환 생각64 비트 vC++ 프로그램이 32 비트 모드에서 실행되는 것 같습니다.
:
bool is64bit = (sizeof(void*)==8);
을하지만 기능 IsWow64Process
라고한다면, 그것은 FALSE을 ... 반환
더 이상한 것 :
LoadLibrary()
아래에 dll을로드하려면 56,이 실패합니다c:\windows\sysWow64\some.dll
에서 DLL을로드 잘- 작동 (오류 코드 193 : some.dll이 아닌 올바른 Win32 응용 프로그램)
이 모든 실패 응용 프로그램이 32 비트 모드, 에서 실행되는 제안하지만이 진실에 대하여 포인터 유형은 8 바이트 길이
나는 혼란 스럽다, 어떤 도움도 인정 될 것이다!
+1 OP가 설명하는 모든 내용은 64 비트 OS의 64 비트 응용 프로그램과 100 % 일치합니다. –
@DavidSchwartz 예 - 사람들은 WoW64를 사용하면 32 비트를 실행한다는 것을 의미하기 때문에 혼란스러워합니다. 이는 이름을 부여한 것의 반대입니다.) –
좋은 답변입니다. WoW64와 system32의 차이를 깨닫 자 몇 시간 전에 단호한 두통을 느꼈습니다. – nothrow