我有一个程序,我从 COleDispatchDriver 调用 exe。这将 m_lpDispatch 指针设为 NULL。我从主 exe 的 dll 中调用它。我在代码的开头和结尾添加了 CoInitialize(NULL)/CoUninitialize()。但是exe仍然没有出现。
CoInitialize(NULL);
matProp = IMatProp();
matProp.CreateDispatch(_T("MatProp.Document"));
matProp.Initialize();
matProp.ShowApplication( SW_SHOW );
CoUninitialize();
IMatProp 是机器生成的 IDispatch 包装类,它是 ColeDispatchDriver 类的子类。下面是该类的方法。
长 IMatProp::Initialize() {
long result;
InvokeHelper(0x1, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}
long IMatProp::ShowApplication(long show) {
long result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
show);
return result;
}
从exe调用时这工作正常,但是从dll调用时它给出了这个问题。请帮我。非常感谢。