【问题标题】:Can We use dcu (Delphi compiled unit) at runtime?我们可以在运行时使用 dcu(Delphi 编译单元)吗?
【发布时间】:2013-01-21 15:15:55
【问题描述】:

我们可以使用 dcu 像 dll 这样的运行时吗?例如,显示在 dcu 文件中编译的表格。我有这个问题,因为我想开发可插入的应用程序。作为 Delphi 程序员,据我所知,我只有两个选项可以做到这一点,基于 dll 或基于 bpl。我喜欢基于 dll 的,因为它不依赖于 delphi 版本,但是.. 将表单保存到几个 dll,使每个 dll 都有很大的大小,并且它的总大小比单个 .exe 大得多。使用 bpl,它取决于编译 bpl 和 exe 的 Delphi 版本。

或者有人可以解释一个技巧或策略,以便使保存表单的 .dll 变得尽可能小吗?谢谢!

【问题讨论】:

  • DCU 也依赖于版本,所以不会有任何收获。
  • DLL 是你想要的,但你应该避免在 DLL 中使用 VCL。您的程序应该公开您希望插件调用的 VCL 功能,并通过接口公开它。大量样板,但它远离 BPL 地狱。
  • 您可以使用使用运行时包编译的 dll。
  • 编译器类型更改后的样板文件和故障负载,例如 char、PChar 和字符串的歧义性质。要使用 DLL 和接口,应该依赖于 COM 中标准化的数据类型,即使不使用 COM 基础结构本身。
  • @Torbins 也使 dll 版本依赖。

标签: delphi dll bpl dcu


【解决方案1】:

不,您不能从运行时直接访问 DCU 文件 :(

将 Delphi 表单存储在 DLL 中是很常见的做法,Google 应该可以举出不少例子。

Delphi Dll - more than one Form / unit in one dll

http://www.link-rank.com/dll.htm

http://en.allexperts.com/q/Delphi-1595/2008/6/Call-procedure-DLL-Form.htm

http://www.blitzbasic.com/Community/posts.php?topic=54261

HTH

【讨论】:

    【解决方案2】:

    据我所知,您无法在运行时访问 .dcu-s。更好地使用 DLL。

    【讨论】:

      【解决方案3】:

      DCU 只是编译单元(因此得名),它们用于通过链接器构建 exe/dll。

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-06
        • 2013-04-25
        • 1970-01-01
        • 2016-08-20
        • 2010-12-12
        相关资源
        最近更新 更多