目的:打通MATLAB与VC之间的通道,实现用MATLAB调用VC程序,以及VC调用MATLAB程序。
上篇博客实现了将MATLAB的M文件编译成C/C++文件,exe应用程序。这篇实现MATLAB编译CPP代码。
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
int i;
i=mxGetScalar(prhs[0]);
if(i==1)
mexPrintf("hello,world!\n");
else
mexPrintf("大家好!\n");
}
上面是一个简单的C++代码,保存成helloworld.cpp。简单解释一下:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
是MEX的接口子程序,接口子程序是与MATLAB的接口,实现两个不同内存空间中的通信。
在matlab命令行中:
输入 mex helloworld.cpp,编译成功。
结果:
注意:在调用mex之前必须先设置好编译器,编译器的设置很简单,见我上篇博客,不多说。