gpt4 book ai didi

c++ - 从主线程询问运行对象表 (ROT) 时出错

转载 作者:行者123 更新时间:2023-11-28 04:03:46 26 4
gpt4 key购买 nike

我有这个方法可以测试我是否成功获得ROT:

void func()
{
IRunningObjectTable *rot;
qDebug() << GetRunningObjectTable(0, &rot);
}

主线程中的一切都很好,但在单独的线程中却不行:

func(); // qDebug prints S_OK (0)
QFuture<void> future = QtConcurrent::run(func); // qDebug prints E_UNEXPECTED (0x8000FFFF)

使用 MinGW 5.3.0 32 位编译。

我不明白为什么它与主线程不同。

帮助将不胜感激。

最佳答案

因为你的线程函数没有调用CoInitializeCoInitializeEx在调用 GetRunningObjectTable 之前。

这可能会在线程中工作

void func_in_thread()
{
CoInitializeEx(nullptr,COINIT_MULTITHREADED);

IRunningObjectTable *rot = nullptr;
qDebug() << GetRunningObjectTable(0, &rot);

CoUninitialize();
}

关于c++ - 从主线程询问运行对象表 (ROT) 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59083796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com