1

我正在使用 Anders Melander 的 DragDrop 包。
它在 Win32 模式下工作正常,但需要调整为 64 位。
我通过添加{$IFNDEF CPUX64}注释掉对 designIDE 的引用来做到这一点。

但是,当我从

requires
  rtl,
  DesignIDE;

requires
  rtl
  {$IFNDEF CPUX64} ,DesignIDE{$ENDIF};

编译器简单地丢弃包源中的 DesignIDE 行,只留下:

requires
  rtl;

这适用于 X64,但一旦我为 32 位重建,它就会中断。

有没有办法让一个包包含 win32 的设计时项目和 X64 的 IFDEF 冲突项目?还是我被迫为 X64 创建一个单独的运行时包?

4

1 回答 1

4

不,您不能在任何项目主文件中使用条件。IDE 拥有并控制它,并且可能会丢弃(甚至破坏)您对条件进行的任何自定义。您将需要为此创建第二个包,这是DesignIDE无论如何使用的常规做法。即使不是为了支持 64 位,也不允许DesignIDE使用任何应用程序进行部署。它的唯一目的是与 IDE 集成,出于法律原因,IDE 只能驻留在 Design-Time 包中。

还要记住,Design-Time 包只能是 Win32,因为 Delphi IDE 只有 32 位。然后,Run-Time 包可以是您希望的任何受支持的平台(即 Win64),当然,只要它受到它可能使用的任何框架的支持。

于 2015-09-13T16:03:56.103 回答