【发布时间】:2021-04-14 09:39:17
【问题描述】:
我正在尝试做一些 COM/OLE,这是我的代码:
static struct IUnknown* punk = NULL;
static IDispatch* UIRManager = NULL;
void DispatcherStart(){
CoInitialize(NULL);
HRESULT retour = GetActiveObject(&CLSID_OASIQ_,NULL,&punk);
if(retour != S_OK){
return;
}
HRESULT hr = IUnknown_QueryInterface_Proxy(punk,&IID_UIRManager_,(void**) &UIRManager); // General protection fault
...
由于某种原因,IUnknown_QueryInterface_Proxy 会导致一般保护错误。我看不出我做错了什么?
这个函数是从与主线程不同的线程调用的,但由于我调用了 CoInitialize,所以它不是错误的原因。我在 C99 上编译 W10 上的 32 位可执行文件
【问题讨论】:
-
` IUnknown_QueryInterface_Proxy` 供代理使用。您没有代理。