프로그램에서 현재 실행 중이 컴퓨터의 CPU에 대한 정보를 알아야 할 때가 있습니다.


예를들면

1. CPU 32비트인지 64비트인지

2. 코어가 몇 개 있는지

등등...


이런 정보를 알고 싶을 때는 Windows 2000 때까지는 GetSystemInfo를 사용했습니다.

그러나 GetSystemInfo 64비트 Windows에서 이 API를 사용하는 프로그램은 32비트 프로그램이라면 잘못된 정보를 가져옵니다. 그래서 32비트나 64비트 환경에 상관 없이 정확한 정보를 얻기 위해서는 GetNativeSystemInfo를 사용해야 합니다.

GetNativeSystemInfo 64비트 환경에서는 내부적으로 GetSystemInfo를 호출합니다.

 

 

 

 

GetNativeSystemInfo를 사용하기 위한 조건

 

OS : Windows XP 이상

필요한 파일 : windows.h

필요한 라이브러리 : kernel32.lib

필요한 dll : kernel32.dll

 

API를 사용할 때 헤더파일에 _WIN32_WINNT 선언이 0x0501 이상이어야 합니다.

#define _WIN32_WINNT 0x0501

 

 

예제

#include <iostream>

#include <windows.h>

 

int main()

{

           SYSTEM_INFO sInfo;

           GetNativeSystemInfo(&sInfo);

                    

           std::cout << "CPU 개수 : " << sInfo.dwNumberOfProcessors << std::endl;

           std::cout << "프로세스 아키텍처 : " << sInfo.wProcessorArchitecture << std::endl;

          

           getchar();

           return 0;

}


결과


저작자 표시
신고
by 흥배 2010.10.06 09:00
| 1 |