用VB调用Matlab生成的dll
MATLAB 具有强大的运算功能,VB 具有开发界面友好的特点,可以将二者结合,可以开发出脱离MATLAB 环境的VB程序,即利用VB调用Matlab生成的dll。
工具/原料
Microsft Visual Basic 6
Matlab 7.0
步骤/电脑c语言编译器方法
在MATLAB 系统中的命令输入comtool命令或点击左下角“Start- > MATLAB - > MATLAB COMBuilder - > MATLAB COM Builder”,启动MATLAB COM Builder。
建立工程,选择菜单“File - > New Project”,设置工程参数。设置的工程名为COM 组件编译后的文件名称,也可以输入新类,点击“Add”建立新类。
点击菜单“Project - > Add File. . . ”,向工程中加入M或MEX文件。
点击菜单“Build - >COM Object. . . ”,状态窗口出现“Standalone DLL build complete.”说明生成dll成功。
注册生成的myfunc_1_0.dll,在VB中引用MWComUtil.dll和myfunc_1_0.dll,就可以像调用里边的函数了!
插入完成后,Visual Basic中的具体调用方法和命令
此时Matlab中定义的函数:
function daoju_gonge(z,x,m,ha,c,b)
(函数名daoju_gonge)
VB调用
1.先对所有的参数进行定义(关键)
Private z As Double
Private x As Double
Private m As Double
Private ha As Double
Private c As Double
Private b As Double
Private theDaoju As myDaoju.Daoju
(theDaoju 是自己设定的一个VB中的变量,myDaoju 则是由.m文件编译而成的.dll文件文件名,同时也是 其中定义的组件名Component name,daoju则是其类名Class name)
2.调用命令
Call theDaoju.Daoju_gonge(z, x, m, ha, c, b)
3.对VB进行初始化
Private Sub Form_Load()
Set theDaoju = New myDaoju.Daoju
End Sub
注意事项以及相应问题解决
1. 在编译dll时,需要机器安装有C或C++编译器,比如安装 VC++6.0
2. Matlab启动Comtool工具之前,还需要利用mbuild –setup 命令对compiler(转换器) 设置,将转换器设置成 C++/C语言对应的compiler,而不是Matlab自带的compiler。
Ps:前两条如果没有做到的话,在comtool生成界面往往出错,无法生成dll等相应的文件。
3. 如果出现有其他一些小问题,尝试重启Visual Basic或Matlab,再或者重启电脑。
疑难点:
如果对文件进行处理,使其能够在其他电脑上同样实现设定的功能。
可选方案一:文件打包。
Visual Basic打包程序或是Matlab打包程序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论