我正在尝试将一些代码从Delphi 5 迁移到Delphi XE7-WIN64。该场景是 DesignEditors 仅是 32 位,因为 IDE 是 32 位应用程序。我正在迁移的项目的单元具有包含 DesignEditors 或 DesignIntf 或两者的 use 子句。
将-LUDesignIDE
放入构建配置>编辑>Delphi编译器>编译>传递给编译器的其他选项>-LUDesignIDE
生成时出现以下第一个错误
[dcc64 fatal error ] E2202 找不到所需的包“DesignIDE”
我正在使用Delphi XE7试用版。
最佳答案
听起来你有一个包,它既是 design-time和run-time合二为一。但在大多数情况下,您必须split your package into two different packages 。一个包是运行时的(您可以在其中实现所有实际的库),另一个包是设计时的(它将您的库公开给 IDE)。
话虽这么说,设计时包必须直接与 Delphi IDE 一起工作。 Delphi IDE 是 32 位的,因此设计时包也必须是 32 位的。然而,您的运行时包将支持所需的任何平台。您的设计时包仅负责将组件、属性编辑器等注册到 IDE。
任何与 IDE 有关的内容(例如注册组件、注册属性编辑器等)都必须位于您的设计时包中,该包只有 32 位。由于法律版权问题,所有设计时实现都必须位于设计时包中,与运行时包分开。
首先创建一个新的仅设计时包,名称相同但前缀为 DCL
。然后,将原始包更改为仅运行时。现在在新的仅设计时包中创建一个新单元。该单元将专门用于注册所有 IDE 设计时交互。运行时包中依赖于这些设计时单元的所有内容都必须转换为该设计时包。这些您找不到的单元仅与 32 位 Delphi IDE 兼容。
新的仅设计时包将需要您的运行时包。您必须先编译运行时包,然后才能编译设计时包。任何时候,您对库进行更改时,都需要 1) 重新编译运行时包,2) 重新编译设计时包,以及 3) 重新安装设计时包。
关于delphi - 当其中的单元使用 DesignEditors DesignIntf 时,如何为 WIN64 构建 delphi 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27699662/