欢迎来到天天文库
浏览记录
ID:38583389
大小:1.23 MB
页数:8页
时间:2019-06-15
《VC++6.0与MATLAB_R2010b混合编程实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++6.0与MATLABR2010b混合编程实例先安装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=-n*pi:0.01:-0.01;y2=sin(x2)./x2;y=[y2y1];plot([x2x1],y)保存为sinplot.m然后进行编译。在编译的时候特别注意以下几点
2、:在我的MATLAB编译时并不生成.ctf文件。可以做如下修改:打开MATLAB安装路径:D:MATLABR2010btoolboxcompilerbundles在bundles下正常情况下应该找不到cppsharedlib文件,只能找到csharedlib那么我们就自己建一个文件命名为cppsharedlib,然后在里面输入-C-Wlib:%1%-Tlink:lib加入-C只是为了生成.ctf文件。否则可能会导致不成功….接下来在命令窗口输入以下命令:mcc-Bcppsharedlib:libsincplotsincplot.m编译产生的文件如下图所示:
3、(如果没有前面的设置则不能产生libsinplot.h只能产生一个sinplot.h最后导致失败)其中我们要用到的文件为libsincplot.h,libsincplot.dll,libsincplot.lib,libsincplot.ctf。接下来我们打开VC++6.0.创建一个名称为Sinplot的MFC单文档应用工程:第一步:第二步:选择Singledocument第三步:点击Finish工程创建完毕。将MATLAB2010b编译生成的libsincplot.h,libsincplot.dll,libsincplot.lib,libsincplot.ctf。四
4、个文件拷贝到刚建立的Sinplot工程中,并将libsincplot.dll和libsincplot.ctf。拷贝到Debug文件夹下。然后对VC++6.0进行配置以便在VC中调用MATLAB动态链接库1.点击:TOOLS—options—detectories—includesfiles中添加MATLAB路径D:MATLABR2010bEXTERNINCLUDED:MATLABR2010bEXTERNINCLUDEWIN32Libraryfiles中添加D:MATLABR2010bEXTERNLIBWIN32MICROSOFT以上设置
5、是对VC软件进行的设置,只需设置一次即可。2.进行项目必要的设置。VC++主界面进入project>Settings,点C/C++选项卡,Category选择Preprocessor,Additional includedirectories下填入如下路径D:MATLABR2010aexterninclude(你的MATLAB安装路径)点“link”选项卡,Category选择General,在下面的Object/librarymodules那栏的最后添加libsincplot.libmclmcrrt.lib其中libsincplot.lib,是MATLA
6、B中编译时,产生的lib文件,两个库之间以及和其他库以空格隔开。然后Category选择input,Additional librarypath下填写:D:MATLABR2010bexternlibwin32microsoft然后点击OK完成对VC++6.0的配置。以下为编程问题:在CSinplotView的包含头文件#include"libsincplot.h"2定义要用到的变量,maArray是MATLAB和VC的接口数据类型,红色的为增加的代码。classCSinplotView:publicCView{protected://createfro
7、mserializationonlyCSinplotView();DECLARE_DYNCREATE(CSinplotView)//Attributespublic:CSinplotDoc*GetDocument();//Operationspublic:mxArray*pArrayIn;mxArray*pArrayOut;intisOK;intm_isInView;//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CSinplotView)3在构造函数中进行初始化:
此文档下载收益归作者所有