各位达人,小弟刚接触matlab编程,用它做了个com组件,把生成正弦函数的代码做到一个dll中,在vc中调用跟dll关联的.h和.c文件,本机上成功运行,很高兴呀!但是把vc和matlab生成的全部文件都拷到一个没有matlab环境的电脑上运行,我做的是基于对话框的MFC程序,点按钮生成正弦曲线,代码如下:
         Iquxian *pquxian;
       HRESULT hr=CoCreateInstance(CLSID_quxian,NULL,CLSCTX_ALL,IID_Iquxian,(void **)&pquxian);
 hr=pquxian->quxian();
程序在编译链接时候都没有问题,也能生成对话框,但是在点击生成按钮时,出现:
Runtime error!this application has requested the runtime to terminate it in an unusual way.please...等东东。
我单步跟进去,在HRESULT hr这句时候,出现unhandled exception in ****.exe :0xE06D7363:microsoft c++ exception。
已经搞了好几天了,老师还催着要,网上查了很多资料,也没有能解决。快头大死了。小弟刚注册论坛,分不多,还恳请各位前辈指点!!小弟不胜感激啊!!

解决方案 »

  1.   

    try
    catch
    看看错误提示
      

  2.   

            CoInitialize(NULL)      //初始化调用com 
    Izhx *pImyclass=NULL;
    HRESULT hr=CoCreateInstance(CLSID_zhx,NULL,CLSCTX_ALL,IID_Izhx,(void **)&pImyclass);
    pImyclass->zhx();  
    pImyclass->Release();
    处理按钮动作的只有这几行代码,就是在HRESULT hr=这句出错了。郁闷的是在本机可以出结果,换到其他机器就不行了。并且也安装了MCR的运行环境,也设置了系统变量,死活这句就过不去了。还望能指点下。谢了!!
      

  3.   

    哎呀,着急死了,但是帖子要沉了,郁闷ING!
      

  4.   


    修给后,试试:
    HRESULT hr=CoCreateInstance(CLSID_zhx,NULL,CLSCTX_INPROC_SERVER,IID_Izhx,(void **)&amp);
      

  5.   


    修给后,试试:
    HRESULT hr=CoCreateInstance(CLSID_zhx,NULL,CLSCTX_INPROC_SERVER,IID_Izhx,(void **)&pImyclass);