0

我在 vb.net 中有这个示例,我在 Delphi 中需要相同的输出。它基本上是一个指针列表,每个指针应该指向一个字节数组(图像)。

        Dim pPointerArray As IntPtr() = New IntPtr(count) {}
        Dim i = 0
        For Each r In ImageList
            pPointerArray(i) = Marshal.AllocHGlobal(r.Images.Length)
            Marshal.Copy(r.Images, 0, pPointerArray(i), r.Images.Length - 1)
            i += 1
        Next

我尝试了许多不同的方法来转换它,但似乎都不起作用。

4

1 回答 1

1

我不确定是什么ImageList。它似乎不是该名称的 WinForms 控件。假设你知道如何做这Marshal.Copy部分,那么你想要这样的东西:

var
  PointerArray: array of Pointer;
.....
SetLength(PointerArray, ImageList.Count);
for i := 0 to ImageList.Count-1 do
begin
  PointerArray[i] := GetMem(ImageList[i].Size);
  // copy contents of i-th image to PointerArray[i]
end;
于 2012-04-29T17:24:20.867 回答