1

在 Delphi 中编程(在 xe2 中)我在 dll 中有一个过程,它返回 apSafeArray 我知道它应该指向一个 double 数组来检索我不能使用的元素safearraygetelement(),因为它使用 aVarArray作为输入参数。这将导致incompatible-types-compiler-error。获取元素的正确方法是什么?

4

1 回答 1

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;
于 2012-08-05T17:34:19.870 回答