MATLAB产生的输出图像可以通过MATLAB的Print命令输出为JPEG、BMP、PNG等格式的图片文件,还可以讲图像以图片格式输出到Windows系统的剪贴板中供其他程序调用。
2.3.5 使用MATLAB Add-in方法实现
Mathtools公司被MathWorks公司收购后,将Visual Matcom集成到MATLAB6.0版本中,MATLAB6.0以后的版本对其Compiler进行了较大的改进,支持更多的数据类型、更强的优化功能,更重要的是,MATLAB Add-in 提供了一个MATLAB和Visual C++直接集成的途径。
MATLAB Add-in具有以下一些新的特征:
1)快速地集成M文件到C++得工程中,可创建独立的C/C++应用程序;
2)通过M文件创建共享库或MEX文件;
3)内含Visual Matrix Viewer,调试过程中可以查看矩阵变量的值;
4)直接修改M源文件而不需要修改生成的C/C++文件,方便快捷地打包应用程序。
MATLAB7.0版本自带的编译器Compiler4.0不再支持这种方式,主要原因是其生成的C/C++代码不够直观,用户通常难以修改。
第三章 使用ActiveX控件实现方法
ActiveX是一种基于Microsoft Windows操作系统的组件集成协议。借助ActiveX,开发商和终端用户就能把来自不同商家的ActiveX组件无缝地集成在自己的应用程序中,从而完成特定的目的,即可实现MATLAB图像嵌入VC++界面。此方法不仅缩短了开发时间,而且有效地避免了低水平的重复开发。本章介绍如何利用ActiveX技术实现MATLAB与C/C++语言的混合编程,从而实现课题目的。
3.1 ActiveX技术概述
ActiveX是各种面向对象技术的集合。这些技术都有的共同基础是"组件对象模型(Component Object Model)" ,简称COM。
每个ActiveX都支持一个或多个赋名的界面。而界面是一组逻辑相关方法、属性、事件的组合。方法类似于请求对象实现某种动作的函数;属性是对象持有的状态(如文字、颜色等)参数;事件是将控制交回客户(Client)的通知,与图形句柄的callback相似。
ActiveX自动化(Automation)使得MATLAB能施控和受控于其他组件。当MATLAB受控于其他组件时,MATLAB表现为自动化服务器(Automation server);当MATLAB控制其他组件时,它变现为自动化库户(Automation client)。MATLAB自动化服务器的功能包括:在MATLAB空间中执行指令;与MATLAB空间直接交换数据。它的功能是:MATLAB借助M文件指示和操纵自动服务器。
MATLAB自动化客户的功能是MATLAB ActiveX控件封装集成功能的子集。所有的ActiveX控件都是ActiveX自动化服务器,但不是所有的自动化服务器一定是ActiveX控件。那些不是控件的自动化服务器将不可能被物理地、可视地镶嵌于客户应用中。MATLAB本身不是控件,而是服务器。所以,MATLAB不能镶嵌在其他客户应用中。然而,由于MATLAB是控制容器(Control container),所以其他的ActiveX控件可以内嵌在MATLAB中。
3.2利用ActiveX进行混合编程实现
通过MATLAB ActiveX自动化服务器,用户可以在自己的应用程序中执行MATLAB命令,并可以与MATLAB的工作空间交换数据。
将MATLAB作为服务器使用时,用户必须首先查阅那些希望使用自动化服务器的应用程序的文档,查明如何在那些控制器中开启自动化服务器,相关函数见表3.1;MATLAB ActiveX对象在系统注册表中定义的名字,即ProgID。通常,ProgID取以下两个名字中的一个。
(1)MATLAB.Application,使用该名称时,将把启动的MATLAB自动化服务器作为"共享"服务器。
(2)MATLAB.Application.Single,使用该名称时,将把启动的MATLAB自动化服务器作为"专用"服务器独享。
表3.1 ActiveX相关函数
函 数 功 能 actxcontrol 创建ActiveX控件对象,建立自动化客户支持 actxserver 创建ActiveX自动化服务器 delete 删除ActiveX对象 get 从接口获取(或显示)属性值 invoke 激活(或显示)接口的方法 move 在父窗上移动对象或改变其大小 propedit 要求空间显示其内建的属性页 release
上一篇:
Biobran酒店管理系统毕业论文(2003doc)
下一篇:
采用VC的伺服电机控制毕业论文(2003doc)