Qt5 MinGW 未定义对 ConvertStringToBSTR 的引用

标签 qt5 mingw bstr

我的链接错误:

Qt\Tools\mingw530_32\i686-w64-mingw32\include\comutil.h:278: erreur : undefined reference to `_com_util::ConvertStringToBSTR(char const*)@4'

实际上在 .pro 文件中:

LIBS += -lws2_32 -lwbemuuid -lole32

要添加哪个库? lib comsuppw?它可以用于 mingw 吗?

Qt 5.10 - mingw32

最佳答案

问题是由于函数 bstr_t() 在:

hres = pSvc->ExecQuery(
bstr_t("WQL"),
bstr_t("SELECT * FROM Win32_Process"), 
WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY, 
NULL, 
&pEnumerator);

解决方案是直接创建 BSTR 字符串:

BSTR bstr_wql = SysAllocString(L"WQL" );
BSTR bstr_sql = SysAllocString(L"SELECT * FROM Win32_Process" ); 

然后使用它们,

hres = pSvc->ExecQuery(bstr_wql, bstr_sql, ...);

不要忘记在查询后释放分配的内存字符串:

SysFreeString(bstr_wql);
SysFreeString(bstr_sql);

链接器满意。

关于Qt5 MinGW 未定义对 ConvertStringToBSTR 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51363689/

相关文章:

qt - 为树莓派构建 Qt 库时出错

c++ - 如何从另一个对话框类访问小部件类

c++ - Qt 5 Mac 工具栏问题

python - Cython hello world 示例在 Windows 上不起作用

c++ - 如何在 Windows 上使用 MinGW 安装/启用 OpenMP for Eclipse?

c++ - 通过 C++ DLL 将 Arduino 字符串转换为 Excel BSTR 的随机字符

windows - 在哪里记录了使用空 BSTR?

javascript - 从模型动态填充大 map

c++ - 这是什么错误? (为什么它不出现在其他类中?)

windows - 将 QString 转换为 BSTR,反之亦然