vc6.0 matlab混合编程,matlab2010 + vc6.0混合编程实例(调用dll)

不想解释太多直接上代码吧!!!

在对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;

}

运行结果:

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值