Matlab与vc混合编程中的问题,使用idl文件

发信人: xxhn (小湖南), 信区: MathTools
标  题: Re: Matlab与VC混合编程中出现的问题(用idl或dll来调用)
发信站: BBS 水木清华站 (Tue Aug 19 15:08:50 2003), 转信

这儿再提供一种通过Idl或dll来调用com组件的方法(不用生成*.h和*.c文件)
其实这种方法比通过生成.h和.c文件来调用要简单一些:),还用精华区的例子
1.通过ole/com object生成idl文件,将此idl文件加入工程,点菜单build-complie 
comtest_1_0.tlb,生成tlb文件
2.打开classwizard,点右边的add class-from a type library class,选中刚生成的
comtest_1_0.tlb(应该在debug\目录下),其实这儿也可以直接选择用matlab的combuilder
生成的comtest_1_0.dll(这样就省去了第一步),后面将出现生成class的一些对话框,照
提示去做就可以了,这样就生成了comtest_1_0.h和comtest_1_0.cpp,多了一个Isgltest
类:)
3.测试代码如下:
头文件中只需添加:
#include "comtest_1_0.h"
测试代码:
   Isgltest st;
   AfxOleInit();
   if(st.CreateDispatch(_T("comtest.sgltest")))
      {
         st.im_test();    
         AfxMessageBox("Haha,Succeeded");
         st.ReleaseDispatch();
      }
   else
         AfxMessageBox("UnSucceeded");

上述代码的具体意义参看msdn,我也是刚刚摸索到:)

【 在 promise0608 (promise0608) 的大作中提到: 】
: 我在使用COM组件时,用Microsoft Visual Studio的工具OLE Viewer 打开生成的组件。找
: 到那个用Matlab com builder生成的Dll文件,将其另存为*.h 和*.c 文件时,出现错误!
: 我用的是VC.NET,不知道什么原因!
: 请大家帮帮我!
: 谢谢了!

原文地址:https://www.cnblogs.com/dayouluo/p/94234.html