不想解释太多直接上代码吧!!!
在对matlab配置后,上代码mcc -W cpplib:libMyAdd -T link:lib MyAdd -C就可以了,记得加上-C
在对VC6.0进行配置的时候只要把 matlabroot\extern\include和matlabroot\extern\lib\win32\microsoft加入到VC6.0中去了,i.e.可以通过Tools->Options->Directories->show directories for 中的Include files和library files添加路径;
#include "libMyAdd.h"
#pragma comment(lib, "libMyAdd.lib")
#pragma comment(lib, "mclmcrrt.lib")
using std::cout;
using std::cin;
using std::endl;
int main(void)
{
double a = 0;
double b = 0;
double c = 0;
// initialize lib
if( !libMyAddInitialize())
{
cout << "Could not initialize libMyAdd!" << endl;
return -1;
}
cout << "input a: ";
cin >> a;
cout << "\ninput b: ";
cin >> b;
//为变量分配内存空间
mwArray mwA(1, 1, mxDOUBLE_CLASS);//1,1表示矩阵的大小(所有matlab只有一种变量,就是矩阵,
//为了和CPP变量接轨,设置1*1的矩阵,mxDOUBLE_CLASS表示变量的精度
mwArray mwB(1, 1, mxDOUBLE_CLASS);
mwArray mwC(1, 1, mxDOUBLE_CLASS);
//调用SetData函数赋值
mwA.SetData(&a,1);
mwB.SetData(&b,1);
//调用自己写的函数MyAdd
MyAdd(1, mwC, mwA, mwB);
//调用Get函数获取函数返回值
c = mwC.Get(1,1);
cout << "c is " << c << endl;
//后面一些终止调用程序
libMyAddTerminate();
mclTerminateApplication();
return 0;
}
运行结果: