在Delphi中编程(在xe2中)我在dll中有一个返回pSafeArray
的过程
我知道它应该指向一个双精度数组
检索一个我不能使用safearraygetelement()
的元素,因为它使用VarArray
作为输入参数。这将导致不兼容类型编译器错误。
获取元素的正确方法是什么?
答案 0 :(得分:5)
SafeArrayGetElement
功能在ActiveX
单元中定义为
function SafeArrayGetElement(psa: PSafeArray; const rgIndices; out pv): HResult; stdcall;
因此您可以将此功能与PSafeArray一起使用。试试这个样本
var
LArray: PSafeArray;
rgIndices, LBound, HBound : Integer;
DoubleValue: Double;
begin
//LArray:=.....
SafeArrayGetLBound(LArray, 1, LBound);
SafeArrayGetUBound(LArray, 1, HBound);
for rgIndices := LBound to HBound do
begin
SafeArrayGetElement(LArray, rgIndices, DoubleValue);
// do something
end;
end;