delphi - 什么safearraygetdata函数将safearray作为Delphi中的输入参数而不是vararray

标签 delphi delphi-xe2

在Delphi中编程(在xe2中)我在DLL中有一个返回pSafeArray的过程
我知道它应该指向一个double数组
检索元素我不能使用safearraygetelement(),因为它使用VarArray作为输入参数。这将导致不兼容类型的编译器错误。
获取元素的正确方法是什么?

最佳答案

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;

关于delphi - 什么safearraygetdata函数将safearray作为Delphi中的输入参数而不是vararray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818373/

相关文章:

delphi - Mac OS和Windows上的Delphi XE2静态数组分配不同

delphi - 使用Indy TidHttp组件通过sendgrid发送电子邮件文件附件

delphi - 64 位 sharemem.pas/borlndmm.dll XE2

delphi - VirtualTreeView 的 Firemonkey 版本

delphi - 我无法在 delphi xe2 中使用 jpeg

Delphi - 无法让 HMAC-SHA256 通过 RFC 4231 测试向量

delphi - 无法连接定义的字符串和图像文件路径中的文本

delphi - delphi 2010 的视频组件

macos - 如何在 OSX 上使用 FireMonkey 获取当前修改器状态?

delphi - Windows XP 上的 FireMonkey Canvas.DrawLine