【发布时间】:2011-05-08 20:46:08
【问题描述】:
我继承了一个 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,则会收到声明与前一个声明不同的错误,但我不知道前一个声明在哪里......
【问题讨论】:
-
@jachguate 目标是 XE,所以它看起来像一个 Unicode 问题。
-
我还没有意识到我的 38% 率。感谢您指出这一点,我会看看我是否可以解决这个问题。这是一个我没有写的包(来自 IOCOMP.com 的第 3 方)。它是 C++ Builder 6 中使用的第 3 方 VCL 控件集,我正在尝试为 CBuilder XE 编译,因为他们还没有 XE 版本的工具。
标签: delphi unicode c++builder delphi-xe