【问题标题】:How to fix bpl loading issue in Delphi XE while opening a project?打开项目时如何解决 Delphi XE 中的 bpl 加载问题?
【发布时间】:2011-11-09 10:17:15
【问题描述】:

当我尝试在 Delphi XE 中打开任何项目时,经常会针对一些流行的 bpl 包引发以下问题:

无法加载包“Name1.bpl”。无法注册组件“Name2” 通过包“name1.bpl”,因为它已经被注册 包“name1.bpl”。你想尝试下一次加载这个包吗 加载项目的时间?

非常感谢您的帮助!

附:杀死进程并重新启动 IDE 总是有帮助的。

【问题讨论】:

    标签: delphi packages delphi-xe bpl


    【解决方案1】:

    确保 IDE 没有从其他文件夹加载 SakEmai15.bpl 的另一个副本。

    【讨论】:

    • 我确定 IDE 没有加载另一个副本。
    • BPL 只是一个 DLL,DLL 是引用计数的,因此可以从同一路径多次加载。如果从不同路径加载相同的 DLL/BPL,它们将被视为不同的实例。使用 SysInternals 的 Process Explorer 或 File Monitor 来验证 IDE 实际加载的内容。
    • 我们并不是在暗示你是。 IDE 有时会做一些意想不到的事情。在对 IDE 问题进行故障排除时,您应该了解 IDE实际上在做什么,而不是您认为它在做什么。使用进程/文件监视器将准确告诉您加载了哪些 DLl/BPL 以及从哪些路径。
    【解决方案2】:

    新的 Delphi 具有延迟加载包的功能。这应该会优化启动速度,当不加载包时,不需要它们。

    这适用于组件包,但会破坏(例如)修改 IDE 菜单的包的乐趣。

    您可以通过在注册过程中调用 ForceDemandLoadState(dlDisable) 来告诉 IDE 始终加载您的包。

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 1970-01-01
      • 2010-12-08
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 2019-03-16
      • 1970-01-01
      • 2011-08-26
      相关资源
      最近更新 更多