Matlab2012a和VS2010混合编程的实现..docx

Matlab2012a和VS2010混合编程的实现..docx

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

MATLAB2012a和VS2010混合编程的实现(Win7+32bit)lihui-mn@163.com1.在MATLAB中编写m文件如下:function y = myfunc(a)y = a.*a;2.MATLAB环境设置操作过程如下:3.创建动态链接库mcc: 将M文件编译成C文件的MATLAB命令; csharedlib: 创建一个C可共享的动态链接库;myfunclib: 要创建的dll文件的名字;myfunc: M文件的名字.如果要加入动态链接库的是多个函数, 那么写成myfunc1 myfunc2 …结果生成文件:4. VS2010环境设置a.创建一个console application, 并新建一个cpp文件(否则之后Property Pages中没有C/C++目录 )b. 设置目录①Property Pages - VC++ Directories - Include Directories, 添加(安装目录下)E:\tools\MATLAB\extern\include\ ②Property Pages - VC++ Directories - Library Directories, 添加E:\tools\MATLAB\extern\lib\win32\microsoft③Property Pages - C/C++ - General - Additional Include Directories, 添加E:\tools\MATLAB\extern\include\④Property Pages - Linker - General - Additional Library Directories, 添加E:\tools\MATLAB\extern\lib\win32\microsoft⑤Property Pages - Linker - Input - Additional Dependencies, 添加5. Windows环境设置Computer - Properties - Advanced system settings - Environment Variables - User Variables - path, 添加E:\tools\MATLAB\extern\lib\win32\microsoft;E:\tools\MATLAB\bin\win32Computer - Properties - Advanced system settings - Environment Variables - System Variables - path, 添加E:\tools\MATLAB\runtime\win32;E:\tools\MATLAB\bin;E:\tools\MATLAB\extern\lib\win32\microsoft;E:\tools\MATLAB\bin\win326. 将MATLAB生成的文件以及MATLAB安装目录bin下的两个文件copy到VS工程目录下7. 在VS窗口下编写程序#include myfunclib.husing namespace std;void main(){myfunclibInitialize();//初始化DLL动态链接文件double _x[5] = {1, 2, 3, 4, 5};//定义输入数组double _y[5];//定义输出数组mxArray* x = mxCreateDoubleMatrix(1, 5, mxREAL);//创建1*5矩阵 memcpy(mxGetPr(x), (void*)_x, sizeof(_x));//copy输入数据mxArray* input[1] = {x};//将矩阵x的指针作为输入参数传递进去mxArray* output[1];//定义输出参数指针mlxMyfunc(1, output, 1, input);//调用M函数mxArray* y;//定义输出结果指针y = output[0];//将输出参数传递给输出结果memcpy(_y, mxGetPr(y), sizeof(_y));//copy输出数据myfunclibTerminate();//结束DLL库for(int i = 0; i 5; i++){printf(%f\n, _y[i]);}}参考资料:1./s/blog_59955afc0100qqgt.html/s/blog_59955afc0100qqgt.html2./f?kz=202350479/f?kz=2023504793.http://www.mathworks.fr/support/solutions/en/data/1-FWTSV5/ind

文档评论(0)

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

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

1亿VIP精品文档

相关文档