支持,在vb中通过调用matlab引擎(engine)利用activex通道与object.execute可直接使用matlab的函数库和图形库。
2.2借助dde技术
动态数据交换(dde),即dynamicdataexchange的缩写。它是又微软公司提出的,是基于windows的消息机制,两个windows应用程序通过相互之间传递消息进行“对话”,从而完成数据的请求、应答、传输,这两个程序分别被称为“server”和“client”。server是数据的提供者,client是数据的请求和接受者。通过dde方式建立的数据连接通道是双向的,“client”不但能读取“server”中的数据,还能对其进行修改。客户程序启动一个dde对话,它必须识别两种服务器定义的参数:①要对话的服务名;②对话的主题名。当一个服务器程序获得客户程序一个会话的要求,它响应这个要求,并建立一个dde会话。服务器和主题名唯一地定义一个会话,在一个dde会话中,客户和服
务器程序通过项目名交换数据,项目名是数据的一个引用。
matlab有两种主题,分别为system和engine。system主题答应用户浏览服务器提供的主题列表、system主题项目和服务器端所支持的格式。engine主题让用户通过提供一个命令来运行matlab、导入和导出数据,此时matlab作为服务器端使用。engine主题支持以下选项:①engevalstring用于在matlab中运行一个命令;②engstringresult用来请求dde执行命令的字符串结果;③engfigureresult用来请求dde执行命令的图形结果。
dde的功能没有activex那么强,但是dde也有其自身优势,就是编码方式比较简单,可用于实现一些简单的功能。
2.3使用matrixvb
matrixvb是由原mathtools公司开发的专门用于vb的一个com组件,该组件提供了600多个函数,包括基本的数学运算和功能强大的信号处理、线性代数、串运算及图形图像处理功能等,专门用来加强vb的矩阵运算与图形绘制功能。matrixvb是与matlab相独立的软件产品,可以脱离matlab运行的独立的应用程序。安装后,就可以在vb中引用它,好处是可以避免重复性劳动,但执行效率较低,实时运算难以实现。
2.4动态链接库dll方法
matcom是一个从maltab到c的编译器,mathtools公司利用matcom技术编写了mideva工具软件,可以借用c编译器将maltab下的m文件转换为可被vb调用的dll文件。操作如下:
启动mideva,点菜单filecompile,选择要进行转换的m文件,修改文件名为“myvbfile”,然后进行编译;编译完成后,将会产生几个文件,vb调用要用到的文件有三个:myvbfile.dll(动态链接库文件)、myvbfile.bas(函数声明文件)、myvbfile.cls(函数文件),其中把myvbfile.dll文件拷贝到vb工程目录或系统目录system32下;在vb开发环境的工程/引用标签中选中mmatrix,它指向mmatrix.dll文件,这个文件将在vb开发环境和编译的dll中起到通信代理的作用。
2.5利用com组件技术
com是componentobjectmodule的简称,它是一种通用的对象接口,支持com的程序称为c