How to fix error: Array type required in Delphi

How to fix error: Array type required in Delphi

我正在使用 Delphi 7,我尝试在 CEF4 Delphi 中编译名为 uWebBrowser (OSRDLLBrowser.dpr) 的演示应用程序,但出现错误:

TempSrcOffset := ((dirtyRects[n].y * Width) + dirtyRects[n].x) * SizeOf(TRGBQuad);
TempDstOffset := ((TempScanlineSize * pred(TempHeight)) - (dirtyRects[n].y * TempScanlineSize)) +
(dirtyRects[n].x * SizeOf(TRGBQuad));
src := @PByte(buffer)[TempSrcOffset];
dst := @PByte(TempBufferBits)[TempDstOffset];

[错误] uWebBrowser.pas(455): 需要数组类型

我明白,src := @PByte(buffer)[TempSrcOffset]; 正在尝试分配不是数组的值,但是你能解释为什么以及如何解决它吗?

注:

现在我正在使用这些二进制文件: https://github.com/salvadordf/OldCEF4Delphi 使用 D7,OS XP 32 位,工作正常。

使用 PByteArray 代替 PByte

在较新的 Delphi 版本中,当编译器指令 {$POINTERMATH}ON (help)

时,您可以将 [] 索引应用于类型指针

在 D2009 指针运算仅针对 PChar (PAnsiChar) 实现之前,AFAIK