作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 DLL,我需要在其中调用 CoCreateInstance()。在 Dllmain() 中,我创建了一个新线程来运行我的函数 do_stuff()。 CoCreateInstance() 在 do_stuff() 中调用,如下所示。
BOOL WINAPI DllMain(HMODULE hModule, DWORD fdwReason, LPVOID lpvReserved) {
...
switch(fdwReason) {
case DLL_PROCESS_ATTACH:
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)do_stuff, NULL, 0, NULL);
...
break;
...
}
...
return TRUE;
}
DWORD WINAPI do_stuff(void) {
...
HRESULT hr = CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr)) {
hr = CoCreateInstance(rclsid, NULL, CLSCTX_LOCAL_SERVER, riid, ppv);
...
但是,CoCreateInstance() 挂起并且永远不会返回。我也尝试过使用 MULTITHREADED 选项,但无济于事。欢迎任何反馈或想法。
最佳答案
关于c++ - CoCreateInstance() 永不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853684/
我是一名优秀的程序员,十分优秀!