DELPHI 7 上的 CromisIPC 编译错误
Posted
技术标签:
【中文标题】DELPHI 7 上的 CromisIPC 编译错误【英文标题】:CromisIPC compilation error on DELPHI 7 【发布时间】:2015-03-20 14:11:44 【问题描述】:我获得了 CromisIPC cromis ipc site download 并成功编译/朗读了 delphi XE5 上的演示和自定义项目。没有任何错误。
但是,当我得到相同的代码并放入 DELPHI 7 项目时,我在单元 Cromis 上出现错误。 AnyValue,编译错误。
TAnyValue = packed record
private
ValueData: TValueDataType;
$IFDEF AnyValue_HookingOff
IntfData : IInterface;
$ELSE
$IFNDEF CPUX64
Padding : array [0..3] of Byte;
$ENDIF
$ENDIF
ValueType: TValueType;
function GetAsInt64: Int64; inline;
正好在 lyne 上:
ValueData: TValueDataType;
[Error] Cromis.AnyValue.pas(210): ',' or ':' expected but identifier 'ValueData' found
[Error] Cromis.AnyValue.pas(219): 'END' expected but 'FUNCTION' found
我在带有 32 位 VCL 项目的 64 位 windows 7 上使用 delphi 7
。
相同的代码在 XE5 上编译。
这里发生了什么?有什么想法吗?
【问题讨论】:
【参考方案1】:tl;dr 此代码不适用于 Delphi 7。
Delphi 7 记录中不允许使用可见性说明符。编译器反对使用private
。您可以删除它,但下一个问题将是记录中声明的所有方法。同样,它们在 Delphi 7 中不可用。
您可以通过从packed record
切换到packed object
来取得一些进展。但是,我认为这不太可能一帆风顺。要在 Delphi 7 上编译此代码需要做大量工作。坦率地说,您需要成为 Delphi 专家才能承担此任务。
您可能会尝试找到一个真正支持 Delphi 7 的旧版本的库。您可以从库的作者那里获得一个。但请注意,website 表示:
所有代码都兼容 Delphi 2006 及更高版本。我不会支持旧的 Delphi 版本。如果您仍在使用它们,那么是时候升级了。
这导致了另一个明显的解决方案。升级到现代版本的 Delphi。
如果这是不可能的,那么你应该寻找一个不同的库。
【讨论】:
以上是关于DELPHI 7 上的 CromisIPC 编译错误的主要内容,如果未能解决你的问题,请参考以下文章
Delphi 7程序移植到 Delphi XE上的一些小情况
将自定义JAR库添加到Android项目时Delphi10.2中的编译器错误
Windows 7 的任务栏上的 Delphi 表单图标模糊(启用 MainFormOnTaskbar)