代码之家  ›  专栏  ›  技术社区  ›  Jens Mühlenhoff

dfm文件是否可以链接到bpl文件?

  •  2
  • Jens Mühlenhoff  · 技术社区  · 6 年前

    我的项目设置如下所示:

    有多个运行时包。我没有使用设计时包。

    每个运行时包都将其DCP、包和单元输出目录设置为 .\Library\$(Platform)\$(Config) 。我不会将它们输出到全局IDE位置以获得不同版本软件包的可安装性。

    此外,每个包中都有一个预构建事件,该事件调用一个脚本文件,该脚本文件复制所有 dfm 将源文件夹中的文件发送到名为 .\Library\Dfm

    为了构建依赖的包和可执行文件,我添加了 dfm公司 以及其他文件到每个依赖项的本地搜索路径,例如:

    ..\Package1\Library\$(Platform)\$(Config)
    ..\Package1\Library\Dfm
    ..\Package2\Library\$(Platform)\$(Config)
    ..\Package2\Library\Dfm
    ..\Package3\Library\$(Platform)\$(Config)
    ..\Package3\Library\Dfm
    

    从技术上讲,我只需要将Dfm目录添加到最终的可执行文件搜索路径,因为 dfm公司 文件链接到PE可执行文件资源部分。

    不过,为每个包提供两条路径似乎是一个不必要的额外步骤。

    所以我在问:有没有可能将 dfm公司 将文件放入 bpl 每个包的文件,而不是最终的可执行文件?

    我自己能想到的一个问题是,这只有在为可执行文件启用运行时包时才起作用,因为编译器无法从 bpl公司 s到 exe 否则

    即使在原则上 dfm公司 与可执行文件不同的模块中的资源?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jens Mühlenhoff    6 年前

    在启用运行时包的情况下编译可执行文件时,编译器不需要访问 dfm 包内表单的文件。

    它们确实与 bpl 文件。

    在禁用运行时包的情况下编译时,编译器会抱怨缺少 dfm公司 文件。因此,它显然无法从已编译的包文件中提取资源( bpl公司 )。