gpt4 book ai didi

delphi - 组件 TSomething 无法通过包 Something_design.bpl 注册,因为它已经通过包 Something_design.bpl 注册。

转载 作者:行者123 更新时间:2023-12-03 15:57:18 26 4
gpt4 key购买 nike

Delphi 中设计时包的可怕错误之一是以下错误,这意味着注册安装新组件到您的 Palette 上的包:

Component TSomething can't be registered by package something_design.bpl because it has already been registered by package something_design.bpl.?

我已经知道这么多了:

  1. 如果您有 BPL 的两个副本,并且加载了一个副本,但依赖于 BPL 的另一个包尝试加载另一个副本,并且它尝试加载第二个副本,您会收到此错误。

  2. 有时,隐式导入会出现奇怪的情况,需要您修复隐式导入警告,清理所有工件(dcu、dcp 等)并重试,然后这种情况就会消失。

但是,如果上述方法都不能解决问题,那么如何解决问题呢?

在我看来,我的硬盘上只有这个 BPL 的一个副本,并且路径指向它,并且不知何故,在 IDE 可以之前,一个包正在对包进行“ secret ”后台加载看到它,然后 IDE 本身尝试加载已使用 Win32 调用 LoadLibrary 加载到 IDE 内存中的包。第二次加载(即 IDE 尝试加载此包)导致失败。

我正在寻找:

A.如何找出问题所在以及如何修复它。

B.避免这种情况的方法(扫描包或 Delphi IDE 配置的防御实践或工具。)

C.解决方法。例如,我发现使用 -np 启动 Delphi ide (bds.exe)参数,然后稍后加载我的项目,而不是在初始 IDE 启动时,有时通过延迟项目/表单打开直到稍后 Delphi IDE 看起来更稳定的时间来解决问题。

最佳答案

首先,你在XE工作吗?今年早些时候,我制作了一个组件来替换日历后,我就遇到了这个问题。我仍然不确定是什么解决了它。但我相信错误与路径有关。通过对 2 个路径定义可见,确保它不会被包含两次。

如果正在使用它,您应该能够看到其中包含哪些软件包。

希望你能明白这一点,我仍然想知道我当时做了什么。

关于delphi - 组件 TSomething 无法通过包 Something_design.bpl 注册,因为它已经通过包 Something_design.bpl 注册。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7822335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com