VC++60与MATLAB R2010a混合编程实例.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC60与MATLABR2010a混合编程实例

VC++6.0与MATLAB R2010a混合编程实例 VC中调用MATLAB编译生成的动态链接库方法 软件:MATLAB 7.10(R2010a),VC++6.0 系统环境变量:在我的电脑—属性—高级—环境变量—系统变量—path中,添加D:\MATLAB\R2007a\bin\win32。 备注:如果在MATLAB中mcc命令出错,提示“cmd不是内部或外部命令。。。”,是因为path中system32的路径被修改了,需要把系统的变量添加进去。 第一部分:对MATLAB程序进行编译,得到动态链接库 1 运行mbuild –setup,安装VC++6.0编译器。 2 编写MATLAB函数,(精通MATLAB与C++混合编程设计 186页的例子) m文件为: function y = sincplot(n) x1 = 0.01:0.01:n*pi; y1 = sin(x1)./x1; x2 = -n*pi:0.01:-0.01; y2 = sin(x2)./x2; y = [y2 y1]; plot([x2 x1],y); 3 把m文件编译为dll文件 运行mcc -B csharedlib:libsincplot sincplot.m,把m文件编译成动态链接库文件。 其中要用到的程序为libsincplot.h,libsincplot.dll,libsincplot.lib,libsincplot.ctf。并复制到工程目录下。 第二部分:在VC中调用MATLAB动态链接库 新建工程MFC单文档应用程序。 启动VC,首先对VC进行配置,以便在VC中调用MATLAB动态链接库 TOOLS—options—detectories— includes files中添加MATLAB路径 D:\MATLAB\R2010\EXTERN\INCLUDE D:\MATLAB\R2010\EXTERN\INCLUDE\WIN32(貌似可以不添加)。 Library files中添加 D:\MATLAB\R2010A\EXTERN\LIB\WIN32\MICROSOFT 以上设置是对VC软件进行的设置,只需设置一次即可。 对新建的工程进行设置: 进行项目必要的设置。主界面进入projectSettings,点C/C++选项卡,Category选择Preprocessor,Additional??include directories下填入如下路径…MATLAB\R2010\extern\include 点“link”选项卡,Category选择General,在下面的Object/library modules 那栏的最后添加 mclmcrrt.lib 其中libsincplot.lib,是MATLAB中编译时,产生的lib文件。两个库之间以及和其他库以空格隔开然后Category选择input,Additional??library path下填写: …MATLAB\R2010a\extern\lib\win32\microsoft 把libsincplot.dll文件拷贝到VC工程debug目录下,或者windows系统目录system或者syetem32下。 把libsincplot.h,libsincplot.lib拷贝到VC工程目录下,并把libsincplot.h添加到工程中。把libsincplot.ctf拷贝到VC工程的debug目录下。然后就可以在VC++中进行编程,调用MATLAB编译得到的动态链接库了。 实验中采用MFC建立的单文档应用程序,编程介绍如下。 编程细节: 1 在CSinplotView的包含头文件 #include libsincplot.h 2 定义要用到的变量,maArray是MATLAB和VC的接口数据类型。 class CSinplotView : public CView { protected: // create from serialization only CSinplotView(); DECLARE_DYNCREATE(CSinplotView) // Attributes public: CSinplotDoc* GetDocument(); // Operations public: mxArray *pArrayIn; mxArray *pArrayOut; int isOK; int m_isInView; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSinplotView) 3 在构造函数中

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档