WIN7系统64位下VS2012调用Matlab2014的设定.docx
文本预览下载声明
VC++调用Matlab引擎系统平台:win7 x64+Vs2012+Matlab2014a操作流程:1添加系统环境变量Path变量中增加:D:\Program Files\MATLAB\R2014a\bin\win64;重启电脑。2在VS中新建一个编译平台第1步第2步第3步第4步3例子程序代码特别的,注意代码中红色的部分!#include iostream#include math.h#include engine.h#include stdafx.h#pragma comment(lib, libmx.lib)#pragma comment(lib, libmat.lib)#pragma comment(lib, libeng.lib)using namespace std;int main(){const int N = 50;double x[N],y[N];int j = 1;for (int i=0; iN; i++) //计算数组x和y{x[i] = (i+1);y[i] = sin(x[i]) + j * log(x[i]); //产生-之间的随机数赋给xx[i];j*= -1;}Engine *ep; //定义Matlab引擎指针。if (!(ep=engOpen(NULL))) //测试是否启动Matlab引擎成功。{cout Cant start Matlab engine! endl;exit(1);}//定义mxArray,为行,N列的实数数组。mxArray *xx = mxCreateDoubleMatrix(1,N, mxREAL);mxArray *yy = mxCreateDoubleMatrix(1,N, mxREAL); //同上。memcpy(mxGetPr(xx), x, N*sizeof(double)); //将数组x复制到mxarray数组xx中。memcpy(mxGetPr(yy), y, N*sizeof(double)); //将数组x复制到mxarray数组yy中。engPutVariable(ep, xx,xx); //将mxArray数组xx写入到Matlab工作空间,命名为xx。engPutVariable(ep, yy,yy); //将mxArray数组yy写入到Matlab工作空间,命名为yy。//向Matlab引擎发送画图命令。plot为Matlab的画图函数,参见Matlab相关文档。engEvalString(ep, plot(xx, yy); );mxDestroyArray(xx); //销毁mxArray数组xx和yy。mxDestroyArray(yy);cout Press any key to exit! endl;cin.get();engClose(ep); //关闭Matlab引擎。}4 VS2012环境设定进入“配置管理器”通过项目属性进入。或者直接从工具栏平台的下拉箭头下进入:(2)增加x64平台确定,得到如下结果。3添加头文件和库文件项目属性——》VC++目录,如图:包含目录增加:D:\Program Files\MATLAB\R2014a\extern\include库目录增加:D:\Program Files\MATLAB\R2014a\extern\lib\win64\microsoft为了保险起见,最好在库目录下再增加:D:\Program Files\MATLAB\R2014a\extern\lib\win64第4步设置DLL5运行结果6遇到的问题无调试信息和解决方案。打开菜单 项目-项目属性页1. 选择配置属性-链接器-调试-生成调试信息改为 是 选择 配置属性-C/C++ -常规-调试信息格式 改为用于“编辑并继续”的程序数据库(/ZI) 选择 配置属性-C/C++ -优化-优化 改为 禁用(/Od)7.最后结果就是这个:
显示全部