不确定 Qt 是否会在后台处理此问题,但您确定您的线程正在通过调用为 COM 初始化CoInitializeEx吗?
我一直在工作中使用一些 COM 和 Qt,这有时会被忽略。
CoInitializeEx 函数
这是使用该功能的示例。
MyClass::MyClass()
{
// Make this call before attempting to access COM.
if( SUCCEEDED( CoInitializeEx( 0, COINIT_APARTMENTTHREADED ) ) )
{
// This single thread has been initialized for COM usage.
// Alternatively you can use COINIT_MULTITHREADED instead
// of COINIT_APARTMENTTHREADED if you require threaded
// support.
}
else
{
// Failed, still must call uninitialize.
CoUninitialize();
}
}
MyClass::~MyClass()
{
CoUninitialize();
}