찾아보니 역시 모든 소스는 MSDN에 있더라.
IsWow64Process()라는 함수가 있는데, 이 놈을 실행하면 자신의 환경이 진짜 32비트인지 가짜인지를 알려준다.
포함해야 하는 헤더는 windows.h 하나 뿐이다.
아래와 같이 간단하게 IsWow64() 함수를 만들어서 사용하면 된다.
#include <windows.h>
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL IsWow64()
{
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{
// 핸들 오류. 알아서 오류 처리
}
}
return bIsWow64;
}
참 쉽죠잉?
- 출처: IsWow64Process Function
WOW 라길래 WOW가 떠올랐어요 -ㅁ-
답글삭제음.. 64bit emulation이니.. 이 녀석이 4GB 이상 32bit winXP에서 지원하도록 해주는 녀석인가요?
@구차니 - 2009/09/02 09:40
답글삭제x64 OS에서 x86 어플을 돌릴 때 사용되는 Windows On Window 엔진을 WOW64라고 합니다. ^^;