在进程内自动化服务器中定义一个函数方法,需要在函数返回时,返回多个值,这就需要采
用数组的类型,比如,我定义了一个方法:
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),再反过来赋值就行了,类型会自动转换的。
本文详细介绍在Delphi中如何通过使用safearray或Variant类型实现函数返回多个值的方法,包括具体示例代码和调用流程,适用于进程内自动化服务器的开发场景。
7740

被折叠的 条评论
为什么被折叠?



