“无法在设置线程模式后对其加以更改”
1.在dll中必须调用CoInitialize或者CoInitializeEx否则会报错“没有调用CoInitialize()”,但是这个函数不能在dll中调用否则会报错“无法在设置线程模式后对其加以更改”,所以只要在exe中先调用CoInitialize,然后调用dll。
2.如果使用“CoInitializeEx(NULL, COINIT_MULTITHREADED); ”会出现此错误,可以这样
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);#ifdef _DEBUG //assert(SUCCEEDED(hr));#endif if( FAILED(hr) ) { hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);#ifdef _DEBUG assert(SUCCEEDED(hr));#endif if( FAILED(hr) ) { return hr; } }
?