我在以下函数中收到错误Incompatible types: 'PPointerList' and 'TPointerList'

function MyFunction: PPointerList;
begin
  result := FList.List;
end;


FList.List返回TPointerList类型。该代码在Delphi 7代码中工作正常,但在Delphi XE4中引发错误。

PPointerList和TPointerList在System.Classes中声明

在System.Classes中

PPointerList = ^TPointerList;
TPointerList = array of Pointer;


当我将TPointerList类型转换为PPointerList时,它的工作方式就像

function MyFunction: PPointerList;
begin
  result := PPointerList(FList.List);
end;


是正确的解决方案,还是该怎么做才能消除此错误。

最佳答案

TList已更改。内部字段FList以前是PPointerList,但现在是TPointerList。要返回指向它的指针,可以使用以下命令:

function MyFunction: PPointerList;
begin
  Result := @FList.List;
end;

10-07 13:39