1、安装vs2010以及matlab2013a,网上有很多安装教程,这里不详细赘述。
2、像系统中添加环境变量,步骤为:“计算机”--“属性”--“高级系统设置”--“高级”--“环境变量”--“系统变量”--“path”。
3、在path中添加C:\Program Files (x86)\MATLAB\R2013a\bin\w足毂忍珩in32(修改为你安装matlab的bin下面的win32目录);C:\Program Files (x86)\MATLAB\R2013a\bin(修改为你安装matlab的bin目录);D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin(修改为你安装VS的VC下的bin目录);修改完成后点确定,然后重启计算机。
4、设置matlab编译环境,这里我们会生成.dll,.lib,.h这三类文件。具体步骤如下:打开mat造婷用痃lab2013a,然后写个简单的script,如下图。接着打开matlab主窗格,输入mex -setup会提示你输入Y或N,我们选择y。然后选择编译器,我们选择VC++2010.
5、接着输入mbuild -setup,然后按照下图选择步骤进行就行。
6、接着输入mcc -W cpplib:libMyAdd -T link:lib MyAdd.m,等待matlab生成.h,.lib.dll等文件,这个要比上面两个稍慢点。这里matlab配置完成。
7、打开VS2010,新建一个项目,注意是win32控制台程序。然后打开新建项目的属性页。进行如下配置。
8、在属性页里的VC++目录下的包含目录加入下面三个目录:C:\Program Files %28x86%29\MATLAB\R2013a\extern\include;C:\Program Files %28x86%29\MATLAB\R2013a\extern\include\win32;D:\mixsoftware\VSworkspace\JHY_Project\JHY_Project。【注意】上面的三个目录按照你的实际安装目录进行修改。每个人都可能不一样。
9、VC++目录下的库目录添加:C:\Program Files %28x86%29\MATLAB\R2013a\bin概嗤先眚\win32;C:\Program Files %28x86%29\MATLAB\R2013a\extern\lib;D:\mixsoftware\VSworkspace\JHY_Project\JHY_Project;C:\Program Files %28x86%29\MATLAB\R2013a\extern\lib\win64\microsoft;C:\Program Files %28x86%29\MATLAB\R2013a\extern\lib\win32\lcc;C:\Program Files %28x86%29\MATLAB\R2013a\extern\lib\win32\microsoft。总共6个,仍然需要按照你的实际安装目录进行修改。
10、在“c/c++”中的“常规”里面的“附加包含目录”添加C:\Program Files %28x86%29\MATLAB\R2013a\extern\include,依旧按照你的实际安装目录进行修改。
11、在“链接器”下面的“常规”中的“附加库目录”添加 C:\Program Files %28x86%29\MATLAB\R2013a\extern\lib\win32\microsoft。老规矩,按照你安装的实际目录修改。
12、在“链接器”下面的“输入”中的“附加依赖项”添加:libeng.lib libmat.lib libmex.lib libmx.lib mclmcrrt.lib mclmcr.lib libMyAdd.lib
13、最后把matlab生成的.h,.lib,.dll文件拷到你新建的项目的目录下。比如我把他们放到了D:\mixsoftware\VSworkspace\JHY_Project\JHY_Project里面。
14、粘贴下面的代码进行测试:#include "stdafx.h"#include "iostream"稆糨孝汶;#include "engine.h"#include "mclmcr.h"#include "mclcppclass.h"#include "libMyAdd.h"using namespace std;int _tmain(int argc, _TCHAR* argv[]){if(!libMyAddInitialize()) { //initilize failed!!!"<<std::endl; std::cout<<"错误..."<<std::endl; return -1; }double a = 6;double b = 9;double c;mwArray mwA(1, 1, mxDOUBLE_CLASS);mwArray mwB(1, 1, mxDOUBLE_CLASS);mwArray mwC(1, 1, mxDOUBLE_CLASS);mwA.SetData(&a, 1);mwB.SetData(&b, 1);MyAdd(1, mwC, mwA, mwB);c = mwC.Get(1,1);cout<<c<<endl;system("PAUSE");return 0;}如果输入15,则说明配置成功。有错误的话就根据提示的错误进行修改。