【问题标题】:How to use GetNativeSystemInfo in a Qt console application如何在 Qt 控制台应用程序中使用 GetNativeSystemInfo
【发布时间】:2013-01-22 19:31:07
【问题描述】:

我正在尝试使用 GetNativeSystemInfo api 来获取操作系统的体系结构(如果它是 32 位或 64 位操作系统),但是当我尝试编译代码时出现此错误:未声明“GetNativeSystemInfo”在这个范围内,我的代码有什么问题?

#include <QtCore/QCoreApplication>
#include <QDebug>
#include <windows.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    _SYSTEM_INFO sysinfo;
    GetNativeSystemInfo(&sysinfo);
    if (sysinfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_INTEL)
    {
        qDebug() << "win32";
    }
    if (sysinfo.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64)
    {
        qDebug() << "win64";
    }

    return a.exec();
}

【问题讨论】:

  • 这并不能直接回答您的问题,但您可能会发现QtGlobal 中的宏或QSysInfo 中的函数会有所帮助。
  • 能否提供一个示例代码来获取使用 QtGlobal 或 QSysinfo 的系统架构?
  • 实际上,仔细观察,Qt 提供的信息与您正在寻找的信息并不完全相同。对不起。

标签: c++ qt winapi


【解决方案1】:

_WIN32_WINNT 定义为0x0501 或更高版本进行编译。

#define _WIN32_WINNT 0x0501,或使用适当的编译器选项(/D_WIN32_WINNT=0x0501 用于 msvc)。

Using the Windows Headers (MSDN) 上查看更多信息。

【讨论】:

  • 在我的代码中添加#define _WIN32_WINNT 0x0501 后,我收到一些错误:警告:“_WIN32_WINNT”重新定义并且“GetNativeSystemInfo”未在此范围内声明
  • 我忘了说,这个#define应该在所有#includes之前。
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
相关资源
最近更新 更多