Windows OS 64bit or 32bit detect cpp function
bool Is64bitOS()
{
//IsWow64Process() 사용
//64bit OS에서 32bit App이 실행될때만 TRUE
//32bit OS 이거나 64bit App인 경우는 FALSE
//BOOL bRet=0; IsWow64Process(GetCurrentProcess(), &bRet);
SYSTEM_INFO si;
//GetSystemInfo(&si); // 안됨 - PROCESSOR_ARCHITECTURE_INTEL 로 나옴
GetNativeSystemInfo(&si);// Workded!!
if( (si.wProcessorArchitecture & PROCESSOR_ARCHITECTURE_IA64)
||(si.wProcessorArchitecture & PROCESSOR_ARCHITECTURE_AMD64) )
{
return true;
}else{
return false;
}
}
//==============
// 참고, 함수가 없다고 나오면 주소를 가져와야 한다.
// 함수포인터 사용
//GetNativeSystemInfo 함수 포인터.
typedef void ( WINAPI *LPFN_GETNATIVESYSTEMINFO )( LPSYSTEM_INFO ) ;
LPFN_GETNATIVESYSTEMINFO pfnGetNativeSystemInfo ;
//IsWow64PRocess 함수 포인터.
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS pfnIsWow64Process;
{
//주소 가져오기
pfnGetNativeSystemInfo = ( LPFN_GETNATIVESYSTEMINFO )GetProcAddress( GetModuleHandle( TEXT( "kernel32.dll" ) ), "GetNativeSystemInfo" ) ;
pfnIsWow64Process = ( LPFN_ISWOW64PROCESS )GetProcAddress( GetModuleHandle( TEXT( "kernel32.dll" ) ), "IsWow64Process" ) ;
}
'Code > Desktop' 카테고리의 다른 글
IPC(Inter-Process Communication) 예제 정리 (0) | 2014.04.01 |
---|---|
sscanf 에러 - 현재 보류 (0) | 2014.03.26 |
Native API의 함수포인터를 지정할때 에러 해결방법 (0) | 2014.03.23 |
define 전처리기 MACRO 사용법 (0) | 2014.03.22 |
UINT64 -> double 형변환 (0) | 2014.03.22 |