【问题标题】:CromisIPC compilation error on DELPHI 7DELPHI 7 上的 CromisIPC 编译错误
【发布时间】: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 上编译。

这里发生了什么?有什么想法吗?

【问题讨论】:

    标签: delphi ipc


    【解决方案1】:

    tl;dr 此代码不适用于 Delphi 7。


    Delphi 7 记录中不允许使用可见性说明符。编译器反对使用private。您可以删除它,但下一个问题将是记录中声明的所有方法。同样,它们在 Delphi 7 中不可用。

    您可以通过从packed record 切换到packed object 来取得一些进展。但是,我认为这不太可能一帆风顺。要在 Delphi 7 上编译此代码需要做大量工作。坦率地说,您需要成为 Delphi 专家才能承担此任务。

    您可能会尝试找到一个真正支持 Delphi 7 的旧版本的库。您可以从库的作者那里获得一个。但请注意,website 表示:

    所有代码都兼容 Delphi 2006 及更高版本。我不会支持旧的 Delphi 版本。如果您仍在使用它们,那么是时候升级了。

    这导致了另一个明显的解决方案。升级到现代版本的 Delphi。

    如果这是不可能的,那么你应该寻找一个不同的库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2010-09-10
      • 2023-01-22
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2014-01-12
      相关资源
      最近更新 更多