실행되는 프로그램의 OS의 32bit인지 64bit인지 알수 있는 방법.
IsWow64Process 함수에서 return 값이 false라면 64bit 프로세서이다.
흠.
[DllImport("kernel32.dll")]
public static extern bool IsWow64Process(System.IntPtr hProcess, out bool lpSystemInfo);
public static bool IsWow64Process1
{
get
{
bool retVal = false;
IsWow64Process(System.Diagnostics.Process.GetCurrentProcess().Handle, out retVal);
return retVal;
}
}
Visual C++
#include <windows.h>
#include <stdio.h>
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL IsWow64()
{
BOOL bIsWow64 = FALSE;
//IsWow64Process is not available on all supported versions of Windows.
//Use GetModuleHandle to get a handle to the DLL that contains the function
//and GetProcAddress to get a pointer to the function if available.
fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
if(NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{
//handle error
}
}
return bIsWow64;
}
void main()
{
if(IsWow64())
printf("The process is running under WOW64.\n");
else
printf("The process is not running under WOW64.\n");
}
반응형
'IT-개발,DB' 카테고리의 다른 글
[개발] visual c++ OS 버전 구하기 (0) | 2010.08.27 |
---|---|
[개발] C# / C#.NET x86, x64 OS에서 Program Files (x86) 경로구하기 (0) | 2010.08.27 |
[IT/일반] 오라클 Virtual Box 가상 디스크 복제하기 (0) | 2010.08.26 |
[Visual C#.NET] ProcessStartInfo.WorkingDirectory 속성 (0) | 2010.08.24 |
[IT/일반] 윈도우즈7 데스크톱 원격제어 연결하기 (0) | 2010.08.24 |
댓글