matlab 2012b与VS2010混合编程

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);

}

截图为:

猜你喜欢

转载自blog.csdn.net/laiyinping/article/details/43054179