我有一個程序,我從COleDispatchDriver調用一個exe文件。這使m_lpDispatch指針爲NULL。我從主exe文件的dll中調用這個函數。我已將CoInitialize(NULL)/ CoUninitialize()添加到代碼的開頭和結尾。但仍然exe文件不顯示。從DLL調用CreateDispatch將m_lpDispatch設置爲NULL
CoInitialize(NULL);
matProp = IMatProp();
matProp.CreateDispatch(_T("MatProp.Document"));
matProp.Initialize();
matProp.ShowApplication(SW_SHOW);
CoUninitialize();
IMatProp是機器產生的IDispatch包裝類哪個子類的COleDispatchDriver類。 下面是該類的方法。
長IMatProp ::初始化() {
long result;
InvokeHelper(0x1, DISPATCH_METHOD, VT_I4, (void*)&result, NULL);
return result;
}
長IMatProp :: ShowApplication(長顯示) {
long result;
static BYTE parms[] =
VTS_I4;
InvokeHelper(0x2, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
show);
return result;
}
從exe中調用時,這工作得很好,但從DLL調用時,它給這個問題。 請幫幫我。 非常感謝。
任何代碼向我們展示? – 2012-08-16 07:55:26
另外,你爲什麼不寫一個偉大的問題,而不是發佈你的問題的一部分 - 我看到[這是開始](http://stackoverflow.com/questions/11980685/launching-and-editing-program-with -coledispatchdriver-MFC)。 – 2012-08-16 07:58:44
嗨Roman,我編輯了問題以顯示代碼。對不起,一次不要問全部問題。 – gishara 2012-08-16 08:11:42