티스토리 뷰
현재 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비트인지만 확인하는 것이라면 위처럼 되어야 한다.
참고
'Programming > C' 카테고리의 다른 글
[WDK] Visual Studio WDK 설치 후, Driver 템플릿이 안 보일 때 (0) | 2020.06.29 |
---|---|
[WinSock] Windows Socket2 구조 (0) | 2019.09.18 |
[libcurl] libcurl API 목록 (0) | 2019.05.09 |
[C++] Class 선언 및 초기화 (0) | 2019.02.26 |
[Compression] Compression 모음 (0) | 2019.02.19 |
댓글