如何使用MFC自动加载类

时间:2018-04-21 06:57:49

标签: automation mfc com

我想用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界面的专业人士。    请帮我。    谢谢。

0 个答案:

没有答案