欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    VC++与MATLAB混合编程COM组件法.docx

    • 资源ID:4925831       资源大小:512.96KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VC++与MATLAB混合编程COM组件法.docx

    COM是component object module的简称,它是一种通用的对象接口,任何语 言只要按照这种接口标准,就可以实现调用它。matlab6.5新推出来的 combuilder就是把用matlab编写的程序做成com组件,供其他语言调用。该 方法实现简单,通用性强,而且几乎可以使用Matlab的任何函数(注意:不支持 脚本文件,脚本文件使用时要改为函数文件),因此在程序较大、调用工具箱函 数或调用函数较多时推荐使用, 这也是Matlab公司(Matlab公司就是 Mathworks公司)推荐的使用方法。COM (Compponent ObjectModel组件对象模型)是一项比较复杂的技 术,详细讲的话几本书也讲不完,所以在这里不作介绍,本文通过一个例子详 细介绍如何在matlab下做COM组件,以及如何在VC中调用COM组件。首先在Matlab编辑器里编辑m函数文件 启动matlab->File->New->M-file 函数内容如图1:该函数无输入输出参数,文件保存为huatu.m。function huatu()x=-10:0.1:10;y=sin(x);plot(x,y);在matlab下建立COM组件,步骤如下:1、在 matlab command window 输入如下命令:>> deploytool出现以下界面:File Edit Tools Project Debug Desktop Window Help»口莒|蝴圈傅箪|Wekome to the Deployment ToolTa get started, do any of the following: Click the New Deployment Project icon in the Deployment Tool toolbar.9 Click the Open Deployment Project icon - to open an existing project. Click the Help icon # in the toolbar.Use the Deployment Tool to perform these tasks:2、新建工程:File->New Deployment Project ;弹出选择对话框如下图3、左侧选择 Matlab Builder NE,右侧选择 Generic COM Component;4、Name中输入工程名(比如hello4.prj);单击OK;出现下面界面5、右击hello4选择rename class可以改为合适的类名(比如huatu,这里没改);6、右击hello4class选择add file添加huatu.m文件(必须是函数文件);添加后如下图7、点击 Tools->Build。编辑中的界面如下编译完成后界面如下,显示成功信息。到此为止, com组件已经由matlab做好,默认的保存在工程目录下的src目录下,主要用到的文件为:mwcomtypes.h、hello4_idl.h和 hello4_idl_ic。生成的文件在工作目录hello4src下,用到的主要是上述3个文件,工作目录下文件界面 如下Q后退,0,* /搜索 文映画,二I 口转到m移动所选项目fe复制所选项目将选择的项目发布到四曲以电子邮件形式发送所选项目册除所选项目build.loq 交本文档 11 KBhello4.defDEF文件1 KBdlldata.cC Source File1 KBhello4.rcResource Template1 KBhello4.ctfCTF文件62 KBhello4_l_0.dll阮I hello4儡我的文档 位!共享文档 J我的电脑 *1网上邻居hellcdclassjzorn.cppC+ Source Hie1 KB选择了 3个项目。总的交件大小:138 KBmiA'comtypes.h二 He.3der file13 口此hello4_idl.idlIDL File1 KBhellu4_l_0.lib LIB妇牛2 KBhelloL-HPP file 1 KBhello4_idljzi.cC5o20 KIrniA'corntypesJ.cC Snurce Hie2 KB类C Source file修改日期:2011-10-80:16大小:19.0 KBhello4_dll.i:ppC+ bource File2 KBhello4_idl.tlbType Librdry2 KBhello4_rni:i:j:ornponent_dat-3 .cC Sourre Hie7 KBmccExcludedFiles.loq文本文档-71 KBmwc omtypesjD.cC Sour re File487 KBreadrne.txt 文本文档 10 KB膻1后嘎廓| E幽喧| 9 R |匝国贵|触一JjcGoodlDIg_3J|DC_BUTTON1司|令QnButtonlON_IDC_BUTTON-段彦圜后圆也|F面开始记录VC+中调用COM组件的方法VC中调用com组件,步骤如下:1、在VC中建立名为good1的基于对话框的MFC(exe)。2、面板上添加一个名为“画图”的button按钮,如图。七,goodl - Microsoft Visual C+* - goocf1.rc - IDD_GOOD1_D!ALOG (Dialog)胃文件(E)编辑(D查看(团插入工程(E)狙建(§)布局(D工具(I)窗口(业)蒂助(H)goodl resourcesEP白 Dialog:圄 IDD_ABOUTBOX; JlDD GQOD1 DIALOG|Bl-Q IconEl-O String TableE-Q Version.FCIassView|lResourceV.jl File ViewConfiguration: goodl - Win32 DebugConpilinggoodlDlg.cppGenerating CodeConpilinghello3_idl_i.cGenerating CodeLinkinggoodl .exe - 0 error(s), 0 warning(s)3、将 mwcomtypes.h、hello4_idl.h 和 hello4_idl_i.c 文件拷贝到 VC 建立的 工程goodl目录下。三个文件默认目录为.hello4src4、将上面两文件加入工程:工程->添加工程->Files,选择刚刚拷到目录下的 mwcomtypes.h、hello4_idl.h 和 hello4_idl_i.c 文件。如下图,图中阴影部分名 称不是hello3而是hello4 (下面的图中均是如此)goodl Microsoft Visual C+ goodl.rc IDD_GOOD1_D!ALOG (Dialog)冒艾件(E)编辑(少查看(以插入0)工程(B)蛆建工具(I)窗口(也)帮助-|g|x管|富口倒球陷醴|其同宙|留|条二|二|险时二会幽后 Hi司n画工作区'goodl': 1工程 白.刷 goodl files§孳 Source Files 团 goodl.cpp 已| youdl .rt Q goodlDlg.cpp jhello3 idl i.c3| StdAfx.cpp $ Header Files|P| youdl .h''以 goodlDlg.h apU Resource.h固 StdAfx.hE -B1 Resource Files国 ReadMe.txtEHB External Dependencieshello3_idl.h Ewcomtypes.hButtonl控件X|""""福茶|取消An abla o剧匪瓯jjConfiguration: goodl - Win32 Debug.粥 ClassView圈 ResourceV.司 FileViewConpilinggoodlDlg.cpp Generating CodeConpilinghello3_idl_i.c Generating CodeLinkinggoodl .exe - O error(s), 9 warning(s)而泉 组建,调试X在文件1中查找在文用 II5、为程序添加头文件 hello4_idl.h 和 mwcomtypes.h,并添加 hello4_idl_i.c;若昭峪口,色 |旧|区官网| CAboutDIg (All class members jj虽,奏圈矗! 11也I Xgoodl - Microsoft Visual C+ - goodlDlg.cpp/ goodlDlg.cpp : inpiementation File日建 goodl classes国 E _IID由列 CAboutDIg曲列 CGoodl App白列 CGoodl Dig§ CGo o d1 Dlg(CWnd *p Pa re nt = D o D ata Exch a n g e C D ata Exch a:OnButtonl 0:饷 OnlnitDialogQ:饱 OnPaintQ:'诞 OnQueryDraglconO、ClassView 壑il ResourceV 冒 FileViewnin I Pttinclude "stdafx .h" ttinclude "goodl.h" ttinclude gooUIDlg finclude "mweomtypes.h" | include "hello3_idl_i.c" ttinclude "helloSidlTh" ttiFdeF DEBUG#deFine-new DEBUGNEWttundef THIS_FILE static char THIS FILE = _FILEttendifConfiguration: goodl - Win32 DebugCompiling.goodlDlg.cppGenerating Code .游1K靖罪调试5在文件i中查找在文i判 ii就绪7、按钮画图函数添加代码:void CGood1Dlg:OnButton1()/ TODO: Add your control notification handler code here CoInitialize(NULL);Ihello4class * pImyclass;HRESULThr=CoCreateInstance(CLSID_hello4class,NULL,CLSCTX_ALL,IID_Ihello4clas s,(void *)&pImyclass);hr=pImyclass->huatu();函数代码的意义涉及到COM,正在写VC调用COM组件所涉及到 的有关COM方面的知识。8、设置预编译头文件:工程-设置(快捷键Alt+F7),选择C/C+项precomplied Headers:可以选择第一项或第二项。如图9、编译、连接、运行。可以看出利用VC调用com组件的方式来调用matlab比较简单,而且几 乎支持matlab所有的函数,在m文件较大、用matcom、调用math library或 使用mcc方式无法实现的时候,推荐使用。需要说明的是,以上程序拷到另 一台机器上是无法直接运行的,因为COM组件没有新机器上注册,如果要在 另一台机器上使用的话,还需要打包安装COM组件。

    注意事项

    本文(VC++与MATLAB混合编程COM组件法.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开