zxjaly 发表于 2005-10-29 08:48

matlab的comtool生成的接口

各位大哥,我用matlab写了一个画图程序,
在matlab中可以出图 huitu(20,0.7,0.5,10,50,250,400,500,2000)
按照一些提示,用comtool编译了一下,做成VC
在弄到要拷贝/extern/include/下的mwcomtypes.h
却没有发现mwcomtypes.h这个文件.
多是按照步骤做的
不知道为什么?

glise 发表于 2005-10-29 08:53

转别人的调用经验

.net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言

今晚一直在***图用c#调用matlab,终于成功。

主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。

主要步骤如下:
1.建一个m文件(test.m)
例如:
functiontest(h,D)
forx=-10:0.1:10,
ifx>D
y=h;
holdon;
plot(x,y)
elseifx<-D
y=-h;
holdon;
plot(x,y)
else
y=h/(D*x);
holdon;
plot(x,y)
end
end
2.在matlab中输入comtool命令,就打开了matlabcombuilder,

点击file-newproject,新建一个工程,

在componentname里输入名字点击ok就行了。

然后点击project--Addfiles,将test.m添加入工程,

然后点Build-ComObject,就会在comtest\distrib\文件夹下生成一个test1_0.dll(它就
是做好的com组件),

Build时matlab已经自动将此dll在注册表中注册

我们还需做一个准备工作,进入/bin/win32目录下(matlabroot为你机器上
matlab安装的路径),打regsvr32mwcomutil.dll,即对mwcomutil.dll进行注册(这个dll
是matlab下作的任何com组件都要用到的dll),下面我们在其他编译器下调用时就可以用了。

3.c#下实现调用

新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用
,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0.dll,点选
择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择

然后编写程序

test.testclassClassst=newtest.testclassClass();
objectm=1,n=2;
st.test(m,n);
即可

然后在c#中就出现了我们所想得到的图形,呵呵
页: [1]
查看完整版本: matlab的comtool生成的接口