Qt 判断windows系统的位数
因为写一个东西,用到windows的API对注册表操作,其中一个参数就是需要指定多多少位的注册表进行操作,如果64位系统就指定使用64位的注册表,否则就是32位注册表
百度许久,各种API,我在QT里用API是真心觉得恶心了,各种转换,转的我头都晕了。。望各位大牛好心指点一下~
[最优解释]
WINDOWS判断是否是64位的方法
bool IsWin64 = false;
#ifdef Q_OS_WIN
OSVERSIONINFOEX osvi;
SYSTEM_INFO si;
PGNSI pGNSI;
ZeroMemory(&si, sizeof(SYSTEM_INFO));
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
GetVersionEx((OSVERSIONINFO*)&osvi);
pGNSI = (PGNSI) GetProcAddress(
GetModuleHandle(TEXT("kernel32.dll")),
"GetNativeSystemInfo");
if(NULL != pGNSI)
pGNSI(&si);
else GetSystemInfo(&si);
if ( si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_AMD64 )
{
IsWin64 = true;
}
else if (si.wProcessorArchitecture==PROCESSOR_ARCHITECTURE_INTEL )
{
IsWin64 = false;
}
#endif