基于COM的VB与Matlab混合编程

第26卷第1期

计算机工程与设计

2005年1月

V01.26

No.1

ComputerEngineeringandDesign

Jan.2005

基于COM的VB与Matlab混合编程

岳玉芳1,

尤忠生2,

张玉双1

(1.北京应用物理与计算数学研究所,北京100088;2.中国航天科工集团17所,北京100038)

要:介绍了一种基于纽件对象模型(ComponentObjectModel,COM)的Matlab与VB混合编程方法。它以Matlab6.5中的MatlabCOMBuilder模块为转换工具,将Matlab的M函数文件转换为COM组件后应用在VB程序中。集成后的软件不仅能够充分发挥两种语言各自的优点,还可以完全脱离Matlab的运行环境。提供的实现过程和编程实例均说明此方法简单,方便,可操作性强。

关键词:组件对象模型;visualbasic;matlab;COM

builder

中图法分类号:TP311.11

文献标识码:A

文章编号:1000.7024(2005)01.0061.02

HybridprogrammingwithVBandmatlabbased

on

COM

YUEYu—fan91,

YOUZhong—shen92,ZHANGYu—shuan91

(1.BeijingInstituteofAppliedPhysicsandComputationalMathematics,Beijing

100088,China;2.17Institute,Aerospace

ScienceandIndustry

Corporation,Beijing100038,China)

Abstract:Amethod

ofhybridprogrammingwithVBandMatlabisintroduced,whichisbased

on

COM.BymeansofMatlabCOM

builderinMatlab6.5as

convertiontool,Matlab’SM—functionfiles

canbeconverted

into

COMcomponentapplied

in

VB.The

integratedsoftware

call

notonly

takefulladvantagesofVBandMATLAB,butalsorun

independentlywithoutMatlab.Theprocessof

realizationand

sampleprogrambothindicatethatthismethodissimpleandconvenient.

Keywords:componentobjectmodel;visualbasic;Matlab;COMbuilder

(DDE)。它是进程之间的通信机制,使用Windows消息和共享1

引言

的内存,使相互作用的应用程序能够动态地交换数据;④动态Matlab是Mathworks公司开发的一种高性能数值计算软连接库(DLL)。应用MathTools公司的Mideva工具软件,借用件,提供了强大的数值分析、矩阵运算和图形显示等功能,编C++编译器将MATLAB的M函数文件转换为DLL,在VB中程效率高,被广泛应用于工程计算及数值分析等领域,但其界加载该DLL;⑤MatrixVB。它是Mathworks公司相应于Matlab面开发能力较差。VisualBasic在设计开发Windows应用程序而开发的COM库,在安装MatrixVB后,开发VB程序时可以方面界面友好,方便快捷。在程序的开发过程中若能集成VB直接调用600多条Matlab中的基本函数,从而完成Matlab的和Matlab各自的优点,把计算过程和数据图形显示功能留给矩阵运算和图形显示功能。在上述5种方法中,前3种方法调用过程较复杂,且无法脱离Matlab环境,这直接影响了所开果进行分析和可视化处理,将极大地提高程序的开发效率。

发软件的独立运行和发布。后两种方法虽然能够脱离Matlab2

VII与Matlab混合编程的几种方法

环境,但Mideva和MatrixVB软件已停止发行。

为解决与其它应用程序之间的接口问题,Mathworks公司在Mathworks公司推出Matlab6.5之前,Matlab与VB的

在其2002年推出的Matlab6.5中新增了MatlabCOMBuilder模混合编程主要有以下5种“1:①中间文件传递法。用VB编写块,它提供了一个简单易用的图形化用户界面,帮助用户将前端用户交互界面,收集必要的参数信息,并保存在一个中间Matlab的M函数文件自动、快速地转变为独立的进程内COM文件(如temp.tx0中,然后利用异步程序调用方式执行Matlab组件,它以.DLL(ActiveXDLL)形式被装入到客户的进程空间程序;②ActiveX自动化服务技术。将Matlab作为服务器,接中,可以在任何支持COM组件的应用中使用,例如Visual

Ba.

sic、MicrosoftExcel、C/C++语言等。其优点在于VB访问该COM

组件时,没有必要进行环境切换,因此可获得最快的运行速度。

尤忠生,工程师,硕士;张玉双,助理研究

Matlab完成,而用VB语言编写Windows应用程序,对计算结收通过引擎传来的数据和指令信息并进行相应的处理,然后将结果经过引擎返回给发送请求的客户机;⑧动态数据交换

收稿日期:2004—02.26。

基金项目:国家863计划802主题基金项目。

作者简介:岳玉芳(1974一),女,河南鹤壁人,副研究员,博士,研究方向为系统的建模与仿真;员,硕士。

基于COM的VB与Matlab混合编程相关文档

最新文档

返回顶部