參考以下 C++ 程式碼。 回傳True,則為Windows x64;回傳False,則為Windows x86。Winpe環境也可以正常執行。
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
BOOL IsWow64()
{
LPFN_ISWOW64PROCESS fnIsWow64Process;
BOOL bIsWow64 = FALSE;
fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
if (fnIsWow64Process != NULL) {
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64)){
return FALSE;
}
}
return bIsWow64;
}
void main()
{
if(IsWow64())
printf(TEXT("OS:x64 OS\n"));
else
printf(TEXT("OS:x86 OS\n"));
}
參考資料: