我在以下函数中收到错误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;