1

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;

这是正确的解决方案,还是我应该怎么做才能摆脱这个错误。

4

1 回答 1

8

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

function MyFunction: PPointerList;
begin
  Result := @FList.List;
end;
于 2013-10-09T09:13:34.077 回答