windows - 对 IID_ImageList 的 undefined reference

标签 windows qt winapi mingw

我使用 Qt 5.4 和 MinGW。 我读到应该链接 uuid 库以避免此错误。在我的 .pro 文件中,我添加了

LIBS += libuuid libole32 liboleaut32

但是,即使我有这一行,我还是会收到 undefined reference 错误

D:\Dev\HinstStart\FileListData.cpp:74: ошибка: undefined reference to `IID_IImageList'

P.S: 如果我添加一些不存在的库,比如

LIBS += libuuid libole32 liboleaut32 liblol

然后我收到“找不到 -llol”错误。这就是我如何知道我的 LIBS 语句没有被忽略

最佳答案

使用 MinGW-w64 时,解决方案是包含 header #include <initguid.h> , 在包括包含 COM 标识符的 header 之前,例如 commoncontrols.h , mmdeviceapi.h , endpointvolume.h .

#include <initguid.h>
#include <commoncontrols.h>
#include <mmdeviceapi.h>
#include <endpointvolume.h>

解决方案位于 Undefined reference to CLSID_MMDeviceEnumerator and IID_IMMDeviceEnumerator

关于windows - 对 IID_ImageList 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31076570/

相关文章:

windows - 为什么 cmd 在我使用 && 时运行我的第二个命令,即使第一个命令失败了?

c++ - Windows 工具栏 - 控制按钮大小和填充

c++ - 由于线程问题,Qt Gui 未更新

winapi - 在 Windows 3.1 WinAPI 如何锁定文件?

windows - SwitchToThisWindow 将当前窗口发送到后面

c++ - MinGW-w64 OpenGL 链接器错误

php - 如何让 shell_exec 在 IIS 6.0 上运行

c++ - 项目错误 : Unknown module(s) in QT: script?

c++ - processEvents 和内存泄漏?

c++ - 获取由库调用创建的窗口的窗口句柄 (HWND)