我继承了一个 Delphi 应用程序,但我对 object pascal 一无所知。
这是一个 BPL,我需要将其编译到新版本的 C++ Builder XE中。
当我运行 make 我得到错误:
E2064 左侧无法分配。
我已经学习了足够多的 obj pascal 来知道我有一个试图被赋值的常量。
但是,显然,您可以超越这种行为;本质上是通过进入 Delphi 编译器下的构建选项并打开“可分配类型常量”来将常量转换为变量。
我这样做了,我继续得到同样的错误。
我尝试用 {$J+} 和 {$J-} 包围我的代码,但它仍然无法编译。
procedure TChunkIDAT.CopyInterlacedRGB8(const Pass: Byte;
Src, Dest, Trans{$IFDEF Store16bits}, Extra{$ENDIF}: pChar );
var
Col: Integer;
begin
{Get first column and enter in loop}
Col := ColumnStart[Pass];
Dest := pChar(Longint(Dest) + Col * 3);
repeat
{Copy this row}
Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);
获取最后一行的错误。如果我将 const 更改为 var,则会收到声明与前一个声明不同的错误,但我不知道前一个声明在哪里......