欢迎来到天天文库
浏览记录
ID:34094292
大小:809.10 KB
页数:4页
时间:2019-03-03
《基于activex的vc_和matlab混合编程技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、兵工自动化软件开发与应用O.I.Automation2008年第27卷第3期ExploitationandApplicationofSoftware2008,Vol.27,No.3文章编号:1006-1576(2008)03-0089-04基于ActiveX的VC++和Matlab混合编程技术刘元朋,赵辉,陈良骥(郑州航空工业管理学院机电工程系,河南郑州450015)摘要:利用Matlab提供的ActiveX技术,提出了一种在VisualC++开发的应用程序中完全控制Matlab的方案。该方案利用一个类对ActiveX的接口代码进行封装,使用户可以专注于Ma
2、tlab的功能应用。类的主要函数在文中已做了详细介绍。VisualC++技术与Matlab的无缝集成,使用户可以轻松地开发出可靠高效、功能强大的应用程序。关键词:Matlab;VisualC++;混合编程;ActiveX中图分类号:TP311.11文献标识码:AHybridProgrammingTechnologyofVC++andMatlabBasedonActiveXLIUYuan-peng,ZHAOHui,CHENLiang-ji(Dept.ofMechanical&ElectricalEngineering,ZhengzhouInstituteofA
3、eronauticalIndustryManagement,Zhengzhou450015,China)Abstract:AsolutionisproposedtofreelyrunMatlabfromaVisualC++applicationbasedontheCOMinterfaceofActiveX.Itusesaclasstoencapsulatealltheinterfacecodeandenableuserstofocusonthemainpartofthejob:useMatlab.Themainfeaturesoftheclassareexp
4、lainedindetail.TheseamlesslyintegrationwayofVisualC++andMatlabmakesitpossiblytodevelopthereliable,highefficiencyandpowerfulapplicationprogramforusers.Keywords:Matlab;VisualC++;Hybridprogramming;ActiveX0引言在MicrosoftWindows操作系统上,Matlab支[1]持ActiveX自动化服务器。自动化是一个ActiveXMatlab是一种功能强大的数学软
5、件,Visual协议,可让一个应用程序或组件控制另一个应用程C++是较为强大的应用程序开发系统,为充分发挥序或组件,而不用关心生成程序或组件的语言。二者的优势,利用Matlab提供的ActiveX技术,实Matlab可被其它Windows程序启动和控制,例如现了在VisualC++开发的应用程序中完全控制[2,3]VisualBasic、Delphi、VisualC++等开发的程序,Matlab,使两者无缝集成,使用户可轻松地开发出通过自动化,可执行Matlab命令,从Matlab工作可靠高效、功能强大的应用程序。空间接受或向它输出数据(MX数组)。Matl
6、ab自动1MatlabActiveX自动化服务器化服务器支持的方法如表1。表1Matlab的接口方法方法作用方法作用Execute在工作空间中执行命令GetCharArray获取工作空间中文本GetFullMatrix从工作空间中获得数据PutCharArray向工作空间输出文本PutFullMatrix向工作空间中输出数据GetVisible判断Matlab控制平台是否可视MinimizeCommandWindow最小化Matlab控制平台SetVisible设置Matlab控制平台的可视化属性MaximizeCommandWindow最大化Matlab控
7、制平台Quit退出Matlab控制平台2VisualC++中调用Matlab#includeClassCMatlabInterface因ActiveX技术中的数据格式和类型与Visual{public:C++中不同,为方便用户在VisualC++中调用CMatlabInterface(boolbStartup=false);Matlab,定义了接口类CMatlabInterface,使用户在//启动方式bStartup:true//共享false专用使用中可以不必考虑ActiveX的底层技术细节,直virtual~CMatlabInterfa
8、ce();boolIsVisible();//判断M
此文档下载收益归作者所有