热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab与vc混合编程指导书.doc,vc与matlab混合编程—基于com.doc

vc与matlab混合编程—基于com.docVC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经

41528d3028836879cd698677c3999917.gifvc与matlab混合编程—基于com.doc

VC与MATLAB混合编程基于COM2010年03月21日星期日1118注意旨在提供一份VC调用MATLAB的快速试验参考和一些实际经验,不保证所有内容都完全正确,一些叙述(特别是关于COM)也不太规范,欢迎大家批评指正。本文讨论使用MATLABCOMBUILDER从M文件生成COM组件,并在MFC应用程序中调用的基本步骤,程序的发布,以及一些注意事项。开发环境WINDOWSXPPROSP3VC60SP6MATLAB65步骤1)检查VC相关环境变量安装VC60的过程中,有一个“REGISTERENVIRONMENTVARIABLE”选项。如果你已经勾选了这一项,可以跳过本步骤;如果没有,请按照C\PROGRAMFILES\MICROSOFTVISUALSTUDIO\VC98\BIN\VCVARS32BAT设置环境变量。2)为VC的INCLUDE和LIB文件查找目录添加MATLAB项目3)设置MATLAB与VC编译器关联打开MATLAB,执行带“–SETUP”选项的MBUILD和MEX,选择VC60COMPILER作为默认的编译器。4)编写M文件,使用MATLABCOMBUILDER生成COM组件作为简单的演示,新建D\MATLAB6P5\WORK\TESTM,内容如下FUNCTIONTESTX100110YSINXFIGURE VISIBLE , OFF SETGCF, MENUBAR , NONE PLOTX,YFIGURE1调用TEST将显示SIN在10,10区间的曲线以结束的语句是为了消除闪烁,这个在最后在VC中调用时还是看得出效果的,可以再验证一下。在MATLAB命令提示符下输入COMTOOL打开MATLABCOMBUILDER,新建工程COMTEST,设置右图所示在“COMPILEROPTIONS”中,第一项是必需的,因为我们使用了图形相关的函数,后面的两项无所谓。点击“OK”,然后将前面编写的TESTM添加到工程中,点击“BUILD“进行编译。5)使用OLEVIEW生成COM组件的接口定义文件如果一切顺利的话(但愿如此☺),会在工程目录下生成很多文件。不过,只有D\MATLAB6P5\WORK\COMTEST\DISTRIB\COMTEST_1_0DLL才是我们唯一需要关心的。从“开始”“MICROSOFTVISUALC60”“MICROSOFTVISUALC60TOOLS”找到“OLEVIEW”,点击打开以后从左侧的“TYPELIBRARIES”下找到“COMTEST10TYPELIBRARY”,双击打开此节点后分别保存为H和C文件。有了COMTEST_1_0DLL,COMTEST_1_0H和COMTEST_1_0C,我们就可以在VC中使用COMTEST组件了。注意这一步能否成功和步骤1)和2)有很大关系,所以如果出错,很可能是因为它们没有被正确配置。6)在MFC应用程序中调用COM组件请看代码//COMBUILDERTESTDLGCPPIMPLEMENTATIONFILEINCLUDE“STDAFXH“INCLUDE“COMBUILDERTESTH“INCLUDE“COMBUILDERTESTDLGH“IMPORT“MWCOMUTILDLL“IMPORT“MATLAB/COMTEST_1_0DLL“INCLUDEINCLUDE“MATLAB/COMTEST_1_0H“VOIDCCOMBUILDERTESTDLGONBTNCOMTEST{IPLOTSINPINSTIFFAILEDCOINITIALIZENULL{AFXMESSAGEBOX“COINITIALIZEFAILED“RETURN}HRESULTHRCOCREATEINSTANCECLSID_PLOTSIN,NULL,CLSCTX_ALL,IID_IPLOTSIN,VOIDIFSUCCEEDEDHR{HRPINSTTESTPINSTRELEASE//不需要PINST了}ELSE{AFXMESSAGEBOX“COCREATEINSTANCEFAILED“RETURN}//窗口嵌入HWNDHFIGUREFINDWINDOWNULL,“FIGURENO1“IFHFIGURE{M_PWNDFIGURECWNDFROMHANDLEHFIGUREASSERTM_PWNDFIGUREM_PWNDFIGURESETPARENTTHISM_PWNDFIGUREMODIFYSTYLEWS_CAPTION|WS_BORDER,WS_MAXIMIZE,0CRECTRTGETCLIENTRECTM_PWNDFIGUREMOVEWINDOW0,0,RTWIDTH,RTHEIGHT,TRUEM_PWNDFIGURESETWINDOWPOS}COUNINITIALIZE//一定要调用这个,否则图像出不来。。。}VOIDCCOMBUILDERTESTDLGONCLOSE{//退出前关闭FIGURE窗口,否则进程无法结束IFM_PWNDFIGURE{POSTMESSAGEM_PWNDFIGUREGETSAFEHWND,WM_CLOSE,0,0COUNINITIALIZE}CDIALOGONCLOSE}使用了FINDWINDOW、CWNDSETPARENT等将COMTEST组件创建的FIGURE窗口嵌入到程序窗体中,虽然不是很完美(如果你有更好的方法,谢谢通知我)。注意在程序结束前要关闭FIGURE窗口,否则将导致进程无法结束。程序截图如下注意事项再次声明一下,VC相关的环境变量设置很重要,我是在这上面栽了跟头的/。另外,(在这个例子中)一定要记得调用COUNINITIALIZE,否则SIN图像出不来。如果你知道为什么,谢谢通知我。发布几乎也是傻瓜式的。COMTOOL中有个“PACKAGECOMPONENT”命令,执行可以得到一个自解压文件,在客户计算机执行并按照提示操作就可以了。



推荐阅读
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 如何用JNI技术调用Java接口以及提高Java性能的详解
    本文介绍了如何使用JNI技术调用Java接口,并详细解析了如何通过JNI技术提高Java的性能。同时还讨论了JNI调用Java的private方法、Java开发中使用JNI技术的情况以及使用Java的JNI技术调用C++时的运行效率问题。文章还介绍了JNIEnv类型的使用方法,包括创建Java对象、调用Java对象的方法、获取Java对象的属性等操作。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
author-avatar
铜钱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有