Matlab中的MyAdd.m(你只需要替换成你的m文件即可)文件:
function [c] = MyAdd(a, b)
c = a + b;
1.用mcc -W cpplib:libMyAdd -T link:lib MyAdd.m生成我们需要的
libMyAdd.dll
libMyAdd.h
libMyAdd.lib
将这三个文件拷贝到VS工程目录下
2.选择项目->项目属性。选择C/C++->常规->附加包含目录:F:\Program files\MATLAB\R2012b\extern\include
3.连接器->常规->附加库目录:F:\Program files\MATLAB\R2012b\extern\lib\win64\microsoft
4.连接器->输入->附加依赖项:libMyAdd.lib;mclmcrrt.lib
5.C++代码:
#include <iostream>
#include "libMyAdd.h"
using namespace std;
void main()
{
libMyAddInitialize(); //libMyAdd.dll初?始?化ˉ函ˉ数簓
mwArray a(1, 4, mxDOUBLE_CLASS); //定¨义?一?个?1*4的?数簓组哩?,?你?的?需è求ó应畖该?是?一?个?1*n的?
a(1, 1)=2; //给?数簓组哩?赋3值μ
a(1, 2)=2;
a(1, 3)=3;
a(1, 4)=4;
mwArray b(1, 4, mxDOUBLE_CLASS); //再ù定¨义?一?个?1*4的?数簓组哩?,?你?的?应畖该?不?需è要癮
b(1, 1)=1; //给?数簓组哩?赋3值μ
b(1, 2)=2;
b(1, 3)=3;
b(1, 4)=4;
mwArray y(1, 4, mxDOUBLE_CLASS); //定¨义?一?个?1*4的?数簓组哩?获?取?返う?回?值μ
MyAdd(1, y, a, b); //在ú这a个?函ˉ数簓中D,?第台?一?个?参?数簓表括?示?返う?回?值μ的?个?数簓,?第台?二t个?参?数簓数簓返う?回?的?数簓组哩?,?第台?三▂个?和í第台?四?个?是?输?入?参?数簓
cout<<y(1,1)<<"\t"<<y(1,2)<<"\t"<<y(1,3)<<"\t"<<y(1,4)<<"\n";
libMyAddTerminate(); //libMyAdd.dll的?关?闭?函ˉ数簓
while(1);
}
截图为: