Matlab是一款功能强大得仿真软件,要想将其用得更加广泛,或者用到VS中那就需要一种特殊的方法,下面将自己实践的方法一一叙述,当然前提你的电脑要有这两款软件。好了,直接进入主题。
第一步:配置系统环境变量
计算机——>系统属性——>高级系统设置——>环境变量
将内容设置为如图所示:你的Matlab安装路径\bin\win64
第二步:配置matlab环境
打开matlab,在命令行状态下键入:mex -setup(x和-之间必须有空格,即setup变成紫色)
然后出现如下提示:
以上便将你的matlab设置成为C/C++环境,弹出如上图,说明matlab支持VS2012,可以进行混合编程。
开始实现混合编程:
Matlab:
在工作空间中输入:deploytool,弹出compile窗口,选择Library Compiler;
选择Library Compiler弹出如下窗口,选择C++ shared Libary,再点击下图加号添加写好的matlab的函数文件(可以写一个简单的加法函数,如果不会写请百度)。
完成后点击绿色的勾,耐心等待转换结束,如下图:
转化好的文件夹内容如下图:
我们所需要的文件在for_redistribution_files_only中,其为.h;.dll;.lib这三个文件。
第三步:配置VS环境变量
首先建立一个VS C++工程 ,选择Visual C++中的win32控制台应用程序,选择你自己想存放的文件路径和自己想要设置的文件名
如此工程建立结束。将matlab生成的for_redistribution_files_only中,其为.h;.dll;.lib文件添加到所建立的VS工程中,我建立的工程名叫AD(我自己乱打的),点开建立的工程后有如下所示的文件夹,将其放到与工程同名的AD文件夹中即可。
下面配置开始配置VS:
首先看你的电脑是32位还是64位,改变属性中的内容,我的电脑和matlab都是64位的所以选择x64,如图所示:这一步很关键
将属性页中VC++目录中的包含目录设置为:你的matlab安装目录\extern\include
将属性页中VC++目录中的库目录设置为:你的matlab安装目录\exter\lib\win64\microsoft
具体如下图所示:
在设置属性页中——>连接——>输入——>附加依赖项 在其中添加一下内容
libeng.lib
libmat.lib
libmex.lib
libmx.lib
mclmcrrt.lib
mclmcr.lib
dec.lib //这个是你MATLAB所写函数生成的.lib名字
至此结束所有设置。
附上VS中代码:
// AD.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "dec.h"
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
if (!decInitialize())
{
return -1;
}
int a = 20, b = 10; // double a = 20.0, b = 10.0;
int c; // double c;
mwArray mwA(1, 1, mxINT32_CLASS); // mwArray mwA(1, 1, mxDOUBLE_CLASS);
mwArray mwB(1, 1, mxINT32_CLASS); // mwArray mwA(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxINT32_CLASS); // mwArray mwA(1, 1, mxDOUBLE_CLASS);
mwA.SetData(&a, 1);
mwB.SetData(&b, 1);
dec(1, mwC, mwA, mwB);
c = mwC.Get(1, 1);
cout << c << endl;
decTerminate();
return 0;
}