Matlab与VB混合编程的两种方法

第13卷 第3期 微 机 发 展Vol.13 No.32003年3月MicrocomputerDevelopment Mar.2003

Matlab与VB混合编程的两种方法

高 剑

(中国人民解放军96165部队58分队,江西乐平333300)

摘 要:为充分发挥Matlab与VB的各自优势和实现两者的混合编程,介绍了采用ActiveX与DDE技术的两种方法。通过这种混合编程实现了VB的可视化界面与Matlab强大的数值分析能力的结合,为程序员提供了极大的方便。关键词:可视化Basic语言;Matlab;互动式元件;动态数据交换

中图分类号:TP31111 文献标识码:A 文章编号:1005-3751(2003)03-0090-03

TwoMethodsofMergingProgrammingofVBandMatlab

GAOJian

(No.58,thePLA96165,LepingJX333300,China)

Abstract:InordertofullyutilizeeachsuperiorityandrealizeMergingProgrammingofVBandMatlab,introducestwomethodsthroughthetechniquesofActiveXandDDE.Throughthismethod,integratethevisualinterfaceofVBandtheabilityofanalysisofMatlabandprovidetheextremeconveniencefortheprogrammers.Keywords:VB;Matlab;ActiveX;DDE

1 引 言

VisualBasic(简称VB)是微软公司推出的可视化开发工具,它具有功能强大、易学易用等特点,目前世界上有数以百万计的程序员把它当作首选的编程工具,是一种十分有生命力的Windows编程语言[1]。

Matlab是美国MathWork公司于1984年推出的产品,时至今日它已发展成为当今国际公认的最优秀的科技应用软件之一。它的内核由C语言编写,具有强大的数值计算、符号计算和矩阵计算能力,界面友好,语言简单,对应用学科有极强的适应能力。它推出后不久,很快成为应用学科,计算机辅助分析、设计、仿真和教学不可缺少的软件,并已应用在生物医学工程、信号分析,图像处理、控制等领域中。在欧美的一些大学里,Matlab是硕士生和博士生必须掌握的基本工具。但令人遗憾的是Matlab只有供C和Fortran语言使用的编程接口[3],这对广大的程序员来说十分不便。本文介绍了通过ActiveX与DDE技术,实现Matlab与VB混合编程的两种方法,充分发挥了两者各自的优势。

[2]

循ActiveX规范的可执行代码组成,比如一个.exe,.dll或.ocx文件。在程序中加入ActiveX部件后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。ActiveX部件保留了一些VB普通控件的属性、事件和方法,其特有的方法和属性大大地增强了程序设计者的能力和灵活性[1]。

当前的新软件一般都支持ActiveX部件的嵌入,Mat-lab语言也不例外,它可以通过ActiveX技术与其他任何应用程序作接口,如VB,VC++,Access等。这使得Matlab语言可以集成其他软件的优点,进一步加强自己的功能。Matlab提供了一个自动化对象,其外部名称是Matlab.Application,它支持COM技术,而其他程序通过COM技术提供的函数得到自动化对象支持的接口指针,通过调用接口函数便可控制和使用自动化对象了。

由于VB支持ActiveX自动化控制端协议,Matlab支持ActiveX自动化服务器端协议,因此如果已经建立了一个VB应用程序和Matlab之间的ActiveX自动化连接,那么在一个应用程序中就可以调用Matlab的命令了。2.2 Matlab自动化服务器

将Matlab作为一个自动化服务器使用,用户首先必须查阅所希望的自动化控制器的文档,查明如何在控制器中开启一个自动化服务器,其次必须知道MatlabActiveX对象在系统注册表中定义的名字,即ProgID,一般可以使用Matlab.Application或者使用Matlab.Application.single,[3]

2 利用ActiveX技术实现Matlab与VB混合编程

2.1 基本原理

ActiveX是一种开放式标准,它允许应用程序或部件控制另一个应用程序或部件的运行。ActiveX部件是M-i

crosoft公司提供的一种用于模块集成的新协议,由一些遵

Matlab与VB混合编程的两种方法相关文档

最新文档

返回顶部