在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/