欢迎来到天天文库
浏览记录
ID:26343420
大小:1.24 MB
页数:14页
时间:2018-11-26
《vc++6.0与matlab r2010b混合编程实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++6.0与MATLABR2010b混合编程实例前几天在自己的电脑上做MATLAB2010b和VC++6.0混合编程时候老是处错误,总结整理了一下,现在把它贴出来希望大家多多指点,共同进步!!!本人QQ:2495591450高同学言归正传---先安装MATLAB编译器:Mbuild-setup选择y出现:输入数字3后出现然后输入y后出现则Matlab编译器配置完成。接着输入mex–setup过程如上不再重复!完成配置后,首先,在Matlab2010b中创建.m文件如下:functiony=sincplot(n)x1=0.01:0.01:n*pi;y1=sin(x1)./x1;x2
2、=-n*pi:0.01:-0.01;y2=sin(x2)./x2;y=[y2y1];plot([x2x1],y)保存为sinplot.m然后进行编译。在编译的时候特别注意以下几点:在我的MATLAB编译时并不生成.ctf文件。可以做如下修改:打开MATLAB安装路径:D:MATLABR2010btoolboxcompilerbundles在bundles下正常情况下应该找不到cppsharedlib文件,只能找到csharedlib那么我们就自己建一个文件命名为cppsharedlib,然后在里面输入-C-Wlib:%1%-Tlink:lib加入-C只是为了生成.ctf文件
3、。否则可能会导致不成功….接下来在命令窗口输入以下命令:mcc-Bcppsharedlib:libsincplotsincplot.m编译产生的文件如下图所示:(如果没有前面的设置则不能产生libsinplot.h只能产生一个sinplot.h最后导致失败)其中我们要用到的文件为libsincplot.h,libsincplot.dll,libsincplot.lib,libsincplot.ctf。接下来我们打开VC++6.0.创建一个名称为Sinplot的MFC单文档应用工程:第一步:第二步:选择Singledocument第三步:点击Finish工程创建完毕。将MATLAB20
4、10b编译生成的libsincplot.h,libsincplot.dll,libsincplot.lib,libsincplot.ctf。四个文件拷贝到刚建立的Sinplot工程中,并将libsincplot.dll和libsincplot.ctf。拷贝到Debug文件夹下。然后对VC++6.0进行配置以便在VC中调用MATLAB动态链接库1.点击:TOOLS—options—detectories—includesfiles中添加MATLAB路径D:MATLABR2010bEXTERNINCLUDED:MATLABR2010bEXTERNINCLUDEWIN32
5、Libraryfiles中添加D:MATLABR2010bEXTERNLIBWIN32MICROSOFT以上设置是对VC软件进行的设置,只需设置一次即可。2.进行项目必要的设置。VC++主界面进入project>Settings,点C/C++选项卡,Category选择Preprocessor,Additional includedirectories下填入如下路径D:MATLABR2010aexterninclude(你的MATLAB安装路径)点“link”选项卡,Category选择General,在下面的Object/librarymodules那栏的最后
6、添加libsincplot.libmclmcrrt.lib其中libsincplot.lib,是MATLAB中编译时,产生的lib文件,两个库之间以及和其他库以空格隔开。然后Category选择input,Additional librarypath下填写:D:MATLABR2010bexternlibwin32microsoft然后点击OK完成对VC++6.0的配置。以下为编程问题:在CSinplotView的包含头文件#include"libsincplot.h"2定义要用到的变量,maArray是MATLAB和VC的接口数据类型,红色的为增加的代码。classCS
7、inplotView:publicCView{protected://createfromserializationonlyCSinplotView();DECLARE_DYNCREATE(CSinplotView)//Attributespublic:CSinplotDoc*GetDocument();//Operationspublic:mxArray*pArrayIn;mxArray*pArrayOut;intisOK;intm_isInView;/
此文档下载收益归作者所有