如何修复错误:Delphi中需要数组类型

时间:2018-12-17 16:01:01

标签: delphi chromium-embedded

我正在使用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(32位OS XP)可以正常工作。

1 个答案:

答案 0 :(得分:4)

使用PByteArray代替PByte

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

时,可以将ON索引应用于键入的指针

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