为不同的Delphi版本编译Delphi组件包(bpl)

时间:2010-01-26 22:11:19

标签: delphi components delphi-2010 vcl

情况如下。通常我使用RAD Studio 2010进行Delphi开发。我有一些我想以二进制形式重新分发的组件(* .bpl没有源代码)。但我希望人们能够使用它们,尽管他们的Delphi版本。但是,例如,dcu文件只能由生成它们的编译器版本使用。我知道,几乎相同的情况是bpl文件。每个bpl文件都需要相应的VCLXX.bpl库,具体取决于Delphi版本。如何使我在2010年编译的bpls能够在Delphi7,2007等中使用?

唯一的解决方案是安装所有Delphi版本并分别编译bpl文件吗?

4 个答案:

答案 0 :(得分:7)

是的,这是唯一的解决方案。每个编译器都会生成特定于其自身版本的DCU和BPL。我所知道的唯一例外是Delphi 2006和2007共享相同的格式。

答案 1 :(得分:3)

要分发可由多个编译器版本使用的已编译代码,请分发普通DLL,而不是BPL。软件包和单元是特定于版本的。

创建以C样式导出的独立函数,或创建在操作系统中注册的COM对象。

但是,它不必改变整个开发策略;它可能是使用 BPL的DLL,因此您可以保留已经放入包中的所有工作。

答案 2 :(得分:1)

你可以在c ++ builder中创建一个obj文件并在Delphi中链接它,分发一个小的pas文件(header)。 c ++ builder obj格式在delphi 7到2009之间没有变化(我可以确认2010,但我认为它也是一样的。)

您需要测试是否可以使用visual / designtime组件。

答案 3 :(得分:0)

我可以创建一个安装程序,在计算机上安装已安装的Delphi版本。 选择你想要创建de bpl的女巫Delphi,并通过命令行调用对应的Dcc来生成通讯员bpl并在Delphi中安装。 您可以查看JVCL安装程序以获取示例。

ATT。