我想用MFC项目加载应用程序的类并将它们用于软件自动化。项目类型是MFC应用程序我的编译器是visual studio 2012。我从typelib向导加载了类。我的整个代码是:
我的代码是:
#include "stdafx.h"
#include "MFCApplication1.h"
#include "CGPNSApplicationDisp.h"
#include "ChildFrm.h"
#include <iostream>
#include <string>
void CChildFrame::AssertValid() const
{
CLSID clsid;
LPDISPATCH pWMPDispatch = NULL;
::CLSIDFromProgID(OLESTR("SGNSAutomation.SGNSApplication"), &clsid);
IID iid;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_ALL,
IID_IDispatch, (LPVOID*)&pWMPDispatch);//creating base class of application
CGPNSApplicationDisp *GPNSApplication1;
hr=pWMPDispatch->QueryInterface(__uuidof(IGPNSApplicationDisp),
(void**)&GPNSApplication1);
LPDISPATCH myNet = NULL;
myNet=GPNSApplication1->addSimulationCase();//error occured here
ISimulationCaseDisp* mysym= NULL;
mysym=GPNSApplication1->openCase(myfile.c_str());*/
CMDIChildWndEx::AssertValid();
}
CGPNSApplicaionDisp的方法列表: addSimulationCase() getSimulationCase(文件路径) importCase(文件路径) openCase(文件路径)
当程序想要在oledisp2.cpp中调用此方法时发生错误 在线: SCODE sc = m_lpDispatch-&gt; Invoke(dwDispID,IID_NULL,0,wFlags, &amp; dispparams,pvarResult,&amp; excepInfo,&amp; nArgErr); 错误是MFCApplication1.exe中0x0FB3F03A(mfc110ud.dll)处的未处理异常:0xC0000005:访问冲突读取位置0x00000002。 我不是MFC项目和COM界面的专业人士。 请帮我。 谢谢。