【问题标题】:How to fix error: Array type required in Delphi如何修复错误:Delphi 中需要数组类型
【发布时间】:2018-12-17 16:01:00
【问题描述】:

我使用的是 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 位,工作正常。

【问题讨论】:

  • 工作正常。谢谢。

标签: delphi chromium-embedded


【解决方案1】:

使用PByteArray 而不是PByte

在较新的 Delphi 版本中,当编译器指令{$POINTERMATH}ON (help) 时,您可以将 [] 索引应用于类型化指针

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多