![](/img/trans.png)
[英]Qt automatically generated .rc file cannot open include file 'windows.h'
[英]Qt5.14 cannot find “windows.h” header?
我在 Linux Fedora fc31_x86_64 上使用 Qt5.14。 我正在阅读 Guillaume Lazar 的书“Mastering Qt5”。
在第 2 章中,我尝试使用书中的示例创建一个跨平台的桌面应用程序,该应用程序检索已使用的内存量和 CPU 负载。 但是当我尝试在我的项目中包含windows.h
时,编译器会抱怨找不到这个文件?
那么如何在 linux 上的 Qt5 中包含“windows.h”?
这是书中的例子:
// In SysInfo.h
class SysInfo
{
public:
SysInfo();
virtual ~SysInfo();
virtual void init() = 0;
virtual double cpuLoadAverage() = 0;
virtual double memoryUsed() = 0;
};
// In SysInfo.cpp
#include "SysInfo.h"
SysInfo::SysInfo()
{
}
SysInfo::~SysInfo()
{
}
#include "SysInfoWindowsImpl.h"
#include <windows.h>
SysInfoWindowsImpl::SysInfoWindowsImpl() :
SysInfo()
{
}
double SysInfoWindowsImpl::memoryUsed()
{
MEMORYSTATUSEX memoryStatus;
memoryStatus.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memoryStatus);
qulonglong memoryPhysicalUsed =
memoryStatus.ullTotalPhys - memoryStatus.ullAvailPhys;
return (double)memoryPhysicalUsed /
(double)memoryStatus.ullTotalPhys * 100.0;
}
这是我的错,因为我在阅读整个程序之前就匆匆忙忙地编译了程序。 在练习结束时,他使用条件编译,所以如果它在 windows 上,它使用<windows.h>
。
这本书应该在练习开始时提到这一点,或者告诉我们在练习结束之前不要编译练习。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.