VS 调用Matlab -》 environment setting

一,设置操作系统的环境变量
1系统环境变量增加
C:\matlab2012b\bin;C:\matlab2012b\bin\win64;C:\matlab2012b\runtime\win64
否则出现如下错误
matlat_c++ (2)
2添加matlab 包含目录环境变量:MATLAB_DIR E:\Program Files\MATLAB_win8\R2014a
3添加包含目录:$(MATLAB_DIR)\extern\include
matlat_c++ (3)
4添加库目录:$(MATLAB_DIR)\extern\lib\win64\microsoft
matlat_c++ (1)
5. add library
Linker->Input->Additional Dependencies
libmx.lib
libmex.lib
libeng.lib
二,设置matlab的编译环境

在matlab中输入命令mex -setup,选择Microsoft Visual C++ 2010

再输入命令mbuild -setup 同样选择Microsoft Visual C++ 2010
三,matlab编译.m文件

输入mcc -W cpplib:yourfunLib -T link:lib yourfun.m

其中,yourfunLib是生成的DLL,Lib的前缀名字,也就是你最后可以是使用的DLL以及Lib库的名字;yourfun是你需要编译的.m函数。

编译完成后得到了下图中的一些文件

这些文件中后缀为DLL,LIB,H的文件在VS调用的时候有用,其他文件目前没有使用

示例程序:
 
#include <iostream>
#include <cmath>
#include <string>
#include <engine.h>

using namespace std;

int main(int argc, char** argv) {
Engine* m_pEngine;
m_pEngine = engOpen(NULL);
if( m_pEngine == NULL ) {
cout<<"error!"<<endl;
exit(-1);
}
engEvalString(m_pEngine, "x=0:0.01:2*pi;");
engEvalString(m_pEngine, "y=sin(x);");
engEvalString(m_pEngine, "figure; plot(x,y,'g');");

system("pause");
engClose(m_pEngine);

return 0;
}

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s