45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:怎么样通过C++判断64位和32位系统?

怎么样通过C++判断64位和32位系统?

2016-09-08 19:51:01 来源:www.45fan.com 【

怎么样通过C++判断64位和32位系统?

{32位系统上,指针和long类型都是32位;而在64位系统上,指针和long类型都是64位的。编程序的时候注意这两种类型和int等类型强制转换时会和32位系统不一样。其他方面没有大的区别}

#include <windows.h>

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

BOOL IsWow64()
{
LPFN_ISWOW64PROCESS fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle("kernel32"),
"IsWow64Process"
);
BOOL bIsWow64 = FALSE;

if (NULL != fnIsWow64Process)
{
if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
{
// Error handle
return FALSE;
}
}
return bIsWow64;
}


BOOL Is64BitWindows()
{
#if defined(_WIN64)

return TRUE; // 64-bit programs run only on Win64

#else // _WIN32

// 32-bit programs run on both 32-bit and 64-bit Windows
// so must sniff
return IsWow64();

#endif

}


BOOL Is64BitCpu()
{
SYSTEM_INFO si;
BOOL bIs64BitCpu;

if (IsWow64())
{
bIs64BitCpu = TRUE;
}
else
{
GetSystemInfo(&si);
bIs64BitCpu = ((si.wProcessorArchitecture & PROCESSOR_ARCHITECTURE_IA64)
|| (si.wProcessorArchitecture & PROCESSOR_ARCHITECTURE_AMD64))
? TRUE : FALSE;
}

return bIs64BitCpu;
}

 

本文地址:http://www.45fan.com/dnjc/73740.html
Tags: 64位 判断 C++
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部