Programming/C
[VC++] 현재 Windows OS의 CPU 아키텍쳐 확인
Tribal
2019. 11. 14. 19:54
현재 Windows OS가 32비트인지 64비트인지 확인하는데 왜 현재 프로세스 핸들로 IsWow64Process 함수를 호출하는 걸로 현재 프로세스의 아키텍쳐를 확인하는 코드만 나올까... 시스템 프로세스의 핸들이면 이해하겠는데
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
BOOL
IsWin64()
{
SYSTEM_INFO sys_info;
GetNativeSystemInfo(&sys_info);
WORD wArch = sys_info.wProcessorArchitecture;
if (wArch == PROCESSOR_ARCHITECTURE_AMD64)
return TRUE;
else if(wArch == PROCESSOR_ARCHITECTURE_INTEL)
return FALSE;
else throw "Invalid architecture!";
}
|
cs |
SYSTEM_INFO.wProcessorArchitecture에 들어가는 값은 단순히 32비트와 64비트뿐만 아니라 임베디드같은 CPU 아키텍쳐도 들어가기 때문에 32비트인지 64비트인지만 확인하는 것이라면 위처럼 되어야 한다.
참고