描述:
从COM中取出数据的代码:
VARIANT input;//只有一个输入参数
VARIANT output;//输出参数
VariantInit(&input);
input.vt=VT_I4;
input.iVal=4;
VariantInit(&output);
output.vt=VT_R8;
// 调用COM组件的方法
arrayy.tryarray(1,&output,input);//调用tryarray组件。
double *nRes;
nRes= new double[1];
// 获取计算的结果
nRes[0]=output.dblVal;
m_edit=nRes[0];//m_edit是Edit类控件,显示输出值。
UpdateData(FALSE);
}
在Vc6.0中执行结果为:0或者67........一长串数字,好像是double能显示的最大数。
这是怎么回事,我觉得好像没什么问题,请高手指点指点。
或者给小弟指点一下哪有相关资料,多谢了!!!
这实际是在VC中调用matlab编写的COM组件。
tryarrayy()实际是一个matlab中的函数,在matlab中的定义是这样的:
function output=tryarrayy(input)
output=3*input;
即output是一个输出参数。
在VC的OLE/COM对象查看器里面查看,这个函数的输入输出为:
void tryarrayy(
[in] long nargout,
[in,out] VARIANT* safe,
[in] VARIANT num
);
也可以与我联系,付费!