哪一个最适合在delphi中使用,即使用package或dll

时间:2010-11-11 11:45:04

标签: delphi packages delphi-7

我想将.dll与delphi应用程序一起使用,但我很好奇delphi程序包是否比dll更灵活?

3 个答案:

答案 0 :(得分:1)

不完全清楚你的意思,并且相信你是一个新手(所以我可能会省略一些专门的方面),并暗示你知道DLL是什么:

构建包的第一个也是最重要的原因是创作设计时组件。

除了设计时间之外,你可以做任何事情(最好......)一个包与DLL一样好。

此外,您可以将多个编译的软件包打包到一个 Borland软件包库(BPL文件)中,而无需考虑设计时功能。如果您认为部署和运行时绑定一个BPL比各种DLL更好,那就去吧。但主要目的是设计时支持。

答案 1 :(得分:1)

您可以在我的博客上阅读这篇文章:“DLL's, BPL's Static and dynamic loading, and Packages in Runtime”;是用西班牙语写的,但你可以尝试自动翻译(在页面右侧)。

基本上BPL是DLL的扩展。这是一个添加了一些东西的DLL。

(正面)如果你使用BPL,你可以用DLL做更多的事情。更多力量。您可以使用RTTI(您必须使用运行时包构建您的应用程序以访问RTTI)。

(NEGATIVE)如果你使用更强大的BPL,你只能使用Delphi,不能使用其他语言。

如果您确定只与Deplhi一起使用,我认为您必须使用BPL。搜索有关RTTI,RegisterClasses,GetClass方法,LoadPackage(动态负载)的示例,...

问候。

对不起,我的英语很差。这不是我的自然语言。

答案 2 :(得分:0)

包是可以导出类的特殊DLL,而DLL只能导出函数。是的,您可以编写一个DLL函数来创建给定类的实例,但是您不能使用DLL中声明的类(除非使用某些hacks),而您可以直接使用在包中声明的类。软件包“知道”Delphi对象体系结构,而DLL则不知道。另一方面,DLL可以从任何能够使用它们的语言中使用,而包是特定于Delphi的。