/*判断是否是x64进程 参 数:进程句柄 返回值:是x64进程返回TRUE,否则返回FALSE */ BOOL IsWow64ProcessEx(HANDLE hProcess) { /*判断ntdll中的导出函数,可知是否是64位OS*/ HMODULE hMod=GetModuleHandle("ntdll.dll"); FARPROC x64fun=::GetProcAddress(hMod,"ZwWow64ReadVirtualMemory64"); if(!x64fun) return FALSE; /*利用IsWow64Process判断是否是x64进程*/ typedef BOOL(WINAPI *pfnIsWow64Process)(HANDLE,PBOOL); pfnIsWow64Process fnIsWow64Process=NULL; hMod=GetModuleHandle("kernel32.dll"); fnIsWow64Process=(pfnIsWow64Process)GetProcAddress(hMod,"IsWow64Process"); if(!fnIsWow64Process) return FALSE; //如果没有导出则判定为32位 BOOL bX64; if(!fnIsWow64Process(hProcess,&bX64)) return FALSE; return !bX64; }