正文

VB与MATLAB通信实现方案二:COM 组件2007-07-20 22:53:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/emath/27672.html

分享到:

            VB与MATLAB通信实现方案二   前言:MATLAB与VB接口,有使用DLL, DDE ,OLE ,ActiveX ,COM 组件等多种方法. 本文介绍的方法:         使用MATLAB中的COM生成器(comtool),将M文件生成DLL,于VB中引用.从MATLAB6.5开始,MATLAB提供了COM生成器,使用该生成器,可以将MATLAB函数和自定义的函数打包成组件,然后集成到支持该技术的应用程序中去.使用该技术,可以很大程度上脱离MATLAB环境.   做个简单的例子吧!  1.建立M文件Test.Mfunction s=test() global a b      %值得注意的地方 s=a+b; return(Matlab6.5)中测试:>> clear>> global a b>> a=1;b=2;>> testans =     3 2.使用Matlab 之comtool将其编译为testdll.dll包含类名为 testdll >>comtool MATLAB COM Builder-->File-->New... 注意写类名:class name 添加要编译的M文件: 点击Add File 编译DLL:点击Build   Matlab 中测试DLL: >> h=actxserver('testdll.testdll') 3.建立VB工程,工程-->引用-->浏览,找到testdll.dll并添加程序代码:Option Explicit Dim mydll As New testdll.testdll Dim bval As Double Dim aval As Double   Private Sub Form_Load() Set mydll = New TestDll.TestDllEnd Sub   Private Sub Command1_Click() Dim varRes As Variant      '要注意的地方 aval = 3 bval = 2 mydll.a = aval mydll.b = bval Call mydll.test(1, varRes) Text1.Text = Str(varRes) End Sub   补充说明: 1.M文件的形式值得注意; 2.编译时要求有VC或其他C/C++编译环境; 3.引用DLL要注意一些问题; 4.VB中取返回值:   Dim varRes As Variant       Call mydll.test(1, varRes)   Text1.Text = Str(varRes)  5.本文例子较简单,意在说明问题,复杂的留给读者发挥吧!      该方法可以使程序很大程度上脱离MATLAB环境运行!      编译DLL还有其他方法,但用到的原理是一样的,不妨一试试!     有问题联系! Edited by Guassfans 2007-07-20

阅读(6738) | 评论(6)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册