#include <Windows.h>
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
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
qDebug() << "the 64 bit:" << IsWin64;
}
需要注意的几个地方:
1.头文件
#include <Windows.h>
2.
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);