开发环境:VS2010 premuim+matlab2014b+win7 64位操作系统,测试成功。
步骤一:安装VS2010
安装VS2010旗舰版,建议默认安装路径C:\Program Files(x86)\Microsoft Visual Studio 10.0,安装成功后会自动添加环境变量。
下载地址http://pan.baidu.com/s/1jG1vu78
步骤二:安装matlab
安装matlab R2014b,破解版下载http://pan.baidu.com/s/1jGlMs5o ,安装成功后记得将安装路径D:\Programfiles\MATLAB\R2014b\bin\win64添加至环境变量,可根据自己安装目录而定;
步骤三:matlab动态链接库文件编译生成
1) 编写示例文件add.m
function [a,b]=add(x,y)
a=2*x+y;
b=x+2*y;
end
2) 进入matlab主界面,如下图:
3) 在控制台输入deploytool命令,调用打包程序,如下图:
4)单击第二项Library Compiler,进入库文件编译程序界面,如下图:
5)根据需要,勾选C++ Shared Library选项,在Add Exported Functions框右侧点击添加需要打包的Function脚本文件,Library information部分根据需要填写,勾选下面两项,
最后配置如下图所示:
6)单击可配置其他编译生成控制命令(暂时不考虑)和打包后文件输出路径,如下图:
生成文件目录如下:
我们需要用C++进行调用的文件在第二个目录for_redistribution_files_only下前三个,如下图,以作备用。
步骤四:新建VS2010测试工程,并进行相关配置
1) 打开VS2010主界面,新建C++空项目,如下图:
2) 设置解决方案生成方式为release,解决方案生成平台设置为x64,如下图:
3) 配置工程属性,打开工程属性配置界面,如下图:
点击C/C++/General/AdditionalInclude Directories处添加路径,如下图:
在Linker/General/ Additional IncludeDirectories处添加路径,如下图:
在Linker/Input/Additional Dependencies处添加如下5个lib文件,如下图:
以上工程配置完毕。
4) 在源文件单击右键,添加新C++测试文件matlabdlltest.cpp,编写代码如下:
#include
#include "mclmcr.h"
#include "matrix.h"
#include "mclcppclass.h"
#include "add.h"
using namespace std;
int main()
{
if(!addInitialize())
{
cout<<"Couldnot initialize lib:myadd!"< exit(0); } mwArraya(1,1,mxDOUBLE_CLASS); mwArray b(1,1,mxDOUBLE_CLASS); a(1,1)=20; b(1,1)=30; mwArray x(1,1,mxDOUBLE_CLASS); mwArray y(1,1,mxDOUBLE_CLASS); //输出参数个数。输出参数,输入参数。 add(2,x,y,a,b); double*i=new double; double *j=new double; x.GetData(i,1); y.GetData(j,1); std::cout<<"x="<<*i<<" y="<<*j< getchar(); return 0; } 5) copy matlab生成的add.h、add.lib至源代码所在目录,如:E:\Coding_HOME\matlabdlltest\matlabdlltest copy 动态库文件add.dll至你的工程工作目录,如:E:\Coding_HOME\matlabdlltest\x64\Release 6) 点击build进行生成,此时运行程序会提示缺少一系列dll文件,比如下图所示: 解决方法:copy 工作目录x64/release下的如下两个文件 至matlab安装目录下的如下目录:D:\Programfiles\MATLAB\R2014b\bin\win64,再次点击matlabdlltest.exe程序执行成功,测试通过,控制台界面如下图: 附源代码:http://pan.baidu.com/s/1ntJ6iCD 另,配置过程中可能会遇到的问题及解决办法: 1. 提示安装VCREDIST_X86补丁,安装不上时参考: http://jingyan.baidu.com/article/4e5b3e19521d9291911e247b.html 2. 缺少mclmcrrt713.dll通过安装MCRInstaller.exe修复,路径为D:\Program Files\matlab R2010a\toolbox\compiler\deploy\win32; 3. window SDK7.1下载 http://www.mathworks.com/support/compilers/R2014b/win64.html 4. 错误:应用程序无法正常启动0xc000007b,请单击“确定”关闭程序。 http://jingyan.baidu.com/article/456c463b9bc4350a58314498.html