1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > vc6.0 matlab混合编程 matlab + vc6.0混合编程实例(调用dll)

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

时间:2021-09-04 11:37:31

相关推荐

vc6.0 matlab混合编程 matlab + 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;

}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。