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中的编译器错误

DPK

Windows 7 的任务栏上的 Delphi 表单图标模糊(启用 MainFormOnTaskbar)

求助,急急急,我新手小白。我的delphi7怎么打不开form啊?delphi7和别人的界面不一样是否安装错了。

Delphi Tokyo 10.2 Windows 7上的TDSRestConnection DataSnap连接