【问题标题】:What is the recommended approach to use ancient VCL components?使用古老 VCL 组件的推荐方法是什么?
【发布时间】:2011-04-30 13:00:04
【问题描述】:

我是一位经验丰富的程序员,但对 C++ Builder 还是很陌生,所以这里有几个新手问题:

我目前正在刷新使用 BCB5 编译的旧代码库。我的目标是最终使用 XE 版本,但由于工作量很大(庞大的代码库),我将在 BCB6 站做第一站(主要是因为我可以继续使用与 _USE_OLD_RW_STL 预处理器定义相同的 STL 版本)。

我拥有大多数使用的第三方 VCL 组件的源代码,除了 2,我只有 foo.bpi/foo.bpl 对 + 标头。直接后果是那些仍然需要 vcl50.bpl 来链接/运行。

  1. 有没有办法拆卸/重新组装 foo.bpl 文件,以便它可以与更新的 VCL 库链接/运行?

  2. 另一方面,是否可以在最终产品包中包含 vcl50.bpl 以及更新的 vcl.bpl 文件,以供这两个组件使用?

  3. 有更好的解决方案吗?

谢谢

【问题讨论】:

  • 诚实吗?我会尝试为这些组件找到最新的替代品。这些是什么组件?
  • 它们是定制组件,公司似乎已经失去了来源(或者承包商可能“忘记”提供它们,我真的不知道,历史当然丢失了)。关键是我只能使用二进制形式。
  • 回应我自己: 2. 似乎没有问题,可能在尝试加载包时触发了某种运行时机制,这引发了一个异常,抱怨在两者中都实现了一个单元(AppEvnts)包。

标签: c++builder vcl


【解决方案1】:

VCL 包是特定于版本的。您不能在 XE 项目中使用 BCB5 包。您必须获取这些组件的 XE 特定版本。

【讨论】:

  • 感谢您的回答。您能否解释导致此限制的技术细节?由于我将无法获得更新的版本,因此我需要绝对确定在扔毛巾之前什么都做不了。
  • @cdelacroix:雷米是对的,什么都做不了。对象的内部格式可以在版本之间改变,例如,RTL 细节也可以改变。当您升级到 XE 时,您会发现 TObjects 的大小不同,Strings 不同,等等……您将无法将 BPL 安装到 IDE 中。正如 Remy 所说,您确实需要重新编译源代码,或者找到替换组件。您可以通过一两个屏幕截图发布有关组件的信息,并在 SO 上寻求替代方案!那里有很多,有人可能会为您指出一个或提供有关编写替代品的提示。
猜你喜欢
  • 2022-06-16
  • 2020-01-30
  • 2019-09-15
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 2010-10-19
  • 2015-07-18
相关资源
最近更新 更多