在COM/DCOM中如何将数组作为函数返回的类型传递呢?各位高手,小弟有急用!!!!!!!!!(100分)

  • 主题发起人 xiao_hero
  • 开始时间
X

xiao_hero

Unregistered / Unconfirmed
GUEST, unregistred user!
在进程内自动化服务器中定义一个函数方法,需要在函数返回时,返回多个值,这就需要采
用数组的类型,比如,我定义了一个方法:
function Calculate(inputtime: Integer): PSafeArray;
safecall;
需要返回一个数组,如何实现呢?是否采用safearray类型呢?
在定义参数时采用的是safearray类型,怎么实现呢?小弟真的很着急!!!!!!!!
 
参考D5开发人员指南 23章, 交换2进制数据
 
用Variant,如:
function Calculate(inputtime: Integer): OleVariant;
safecall;
begin
Result := VarArrayCreate([0,2], VarOleStr);//三个元素的可变数组
Result[0] := UserNo;//用户编号,数字型
Result[1] := UserName;//用户名称,字符型
Result[2] := FireDate;//入职日期,日期时间型
end;
调用该接口的程序,可以先判断返回值是不是可变数组(用VarIsArray),再反过来赋值就行了,类型会自动转换的。
 
谢谢两位高手的指点,小弟真是受益匪浅,在此非常感谢!因为小弟是一名学习COM的新手,
因此肯定会有不懂的问题向二位请教,并且很想和二位交个朋友,能留下二位的QQ号和
E-mail地址吗?小弟非常感激!我的QQ号是33804512,E-mail地址为xiao_hero@163.com,
希望我们能经常保持联系。现在把分数分配如下,由于WiseAnt大哥介绍的比较详细,分给
66分,祝您六六大顺,tseug哥也为我指明了一条继续学习的通道,我也非常感谢,送上34分,
请二位查收,并回信!好了,再此非常感谢!!!!!
 
多人接受答案了。
 
顶部