vc6.0 调用matlab dll,程序中使用MATLAB编译产生的DLL (VC6.0 , MATLAB R2010b , mwArray)|MATLAB 混合编程与应用发布|MATLAB技术论坛...

std::cout << "Hello world!" << std::endl;

/* Initialize the MCR */

if( !mclInitializeApplication(NULL,0) )

{

std::cout << "Could not initialize the application!" << std::endl;

return -1;

}

// initialize lib

if( !libmyadd2Initialize())

{

std::cout << "Could not initialize libmyadd2!" << std::endl;

return -1;

}

try

{

// declare and initialize a

mwArray a(2, 2,  mxDOUBLE_CLASS);

double *aData;

aData = new double[4];

int i;

for( i=0; i<4; ++i)

{

aData[i] = 1.0*i;

}

// print output

std::cout << "a = " << std::endl;

std::cout << aData[0] << ",\t" << aData[1] << std::endl;

std::cout << aData[2] << ",\t" << aData[3] << std::endl;

a.SetData(aData, 4);

// declare and initialize b

mwArray b(2, 2,  mxDOUBLE_CLASS);

b(1,1) = 11.;

b(1,2) = 12.;

b(2,1) = 21.;

b(2,2) = 22.;

mwArray y(2, 2,  mxDOUBLE_CLASS);

mwArray z(2, 2,  mxDOUBLE_CLASS);

// call the function

myadd2(2, y, z, a, b);

// copy data from mwArray to C++ objects

// allocate outputs

double *yData, *zData;

yData = new double[4];

if( yData == NULL )

{

std::cout << "Failed to allocate memory for yData!" << std::endl;

return -1;

}

zData = new double[4];

if( zData == NULL )

{

std::cout << "Failed to allocate memory for zData!" << std::endl;

return -1;

}

// copy data from mwArray to C++

y.GetData(yData, 4);

z.GetData(zData, 4);

// print output

std::cout << "y = " << std::endl;

std::cout << yData[0] << ",\t" << yData[1] << std::endl;

std::cout << yData[2] << ",\t" << yData[3] << std::endl;

std::cout << "z = " << std::endl;

std::cout << zData[0] << ",\t" << zData[1] << std::endl;

std::cout << zData[2] << ",\t" << zData[3] << std::endl;

// deallocate memory

delete [] aData;

delete [] zData;

delete [] yData;

}

catch( const mwException& e)

{

std::cerr << e.what() << std::endl;

}

// terminate the lib

libmyadd2Terminate();

// terminate MCR

mclTerminateApplication();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值