2011-04-30 48 views
1

我是一位经验丰富的程序员,但对于C++ Builder来说却很新颖,所以这里有几个新手问题:使用古代VCL组件的建议方法是什么?

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

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

  1. 是否有反汇编/重组foo.bpl文件的方法,以便它可以链接/运行更新的VCL库?

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

  3. 任何更好的解决方案?

感谢

+0

老实说?我试图找到这些组件的最新替代品。这些是什么类型的组件? – 2011-04-30 13:16:04

+0

他们是公司似乎已经失去了来源的定制组件(或者承包商可能已经“忘记”提供它们,我不知道,历史当然会丢失)。重点是我将只能使用二进制形式。 – cdelacroix 2011-04-30 13:46:52

+0

回应自己:2.看起来没什么问题,当尝试加载一个包时,可能会触发某种运行时机制,会引发一个异常,抱怨在这两个包中都实现了一个单元(AppEvnts)。 – cdelacroix 2011-04-30 14:12:04

回答

2

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

+0

谢谢你的回答。你能解释导致这种限制的技术细节吗?由于我无法获得更新的版本,因此我需要绝对确保在扔掉毛巾之前不能做任何事情。 – cdelacroix 2011-05-01 16:58:18

+2

@cdelacroix:雷米是对的,没有什么可以做的。对象的内部格式可以在版本之间变化,例如,RTL细节也是如此。当你升级到XE时,你会发现'TObject'具有不同的大小,'String's是不同的,等等......你将无法将BPL安装到IDE中。正如Remy所说,您确实需要重新编译源代码,或者找到替代组件。你可以发布关于组件的截图或两个,并要求在这里的替代品!那里有很多东西,有人可能会指给你一个,或给出编写替代品的提示。 – 2011-05-03 03:16:01

相关问题