现在的位置: 首页 > 综合 > 正文

Delphi BPL包安装讲解

2017年11月13日 ⁄ 综合 ⁄ 共 1413字 ⁄ 字号 评论关闭

       我们知道在delphi IDE中,分为开发包和运行包,所谓开发包是指那些需要在开发环境中依赖的包,这些包的功能包括可以提供用户可视化的控件设计等.这些开发包一般用于安装组件的.而运行包则是那些软件运行时动态引用所依赖的包.其实有的bpl是可以同时具有这两种功能的,(但是我见过的大多数都是作为开发包使用的,如果不特殊声明的话).他即可以作为开发包进行安装组件,但是注意就是如果安装组件的开发包,那么一定要在delphi的project里放入这个bpl,以便开发时引用,又因为这只是安装,在运行的时候不是直接调用这个bpl,而是连接这些组件的dcu,所以要加入dcu的路径.也就是我们经常说的LIB.这样就完全可以解释上面的问题了.

      有人说bpl是delphi特有的dll,一开始,还有些不明白,但是现在似乎有些眉目了,开发包的bpl是IDE的dll,而运行包则是应用程序的dll,其实运行包的bpl是完全可以用作dll使用的,例如如果我们在project的option里选择with runtime package,那么你所生成的exe文件将会成倍的减小,但是这时候的exe文件运行时需要system32下的bpl作为动态连接库.否则将会出错,相反,如果不采用动态连接,IDE编译环境就会把所有的dcu连接到exe文件中,造成exe的变大.

      我们现在介绍一些文件后缀的意思.dpr是工程文件,pas是单元文件,dfm是单元文件的窗体资源文件.dcu是pas文件编译后的文件.dpk是多个组件包组成的源文件,编译后就会生成bpl文件和dcp文件,bpl就是安装包也就是开发包,dcp则可以理解为一些描述性信息.

      我们再介绍关于安装组件的问题.安装开发包的本质就是添加bpl的路径,并且运行他的某个注册pas文件.通常来说安装的过程是通过dpk编译后再install,编译就是把bpl文件释放到delphi的project bpl中,剩下的就变成了安装bpl包了,添加bpl路径和运行注册类文件(通过IDE中的install package).但是,我们通常会遇到下面两种情况,第一:,编译不成功,也就是不能生成bpl文件,这通常是因为这个包由于引用了其他的包,而其他的包还没有安装,所以对他的引用不能成功,也就不能正常编译了.第二,编译成功,也就是生成了bpl文件,但是却无法安装,这时候首先要根据提示判断这个包是不是开发包,因为运行包是不能安装的.有的安装包带有相对应的运行包,这时候必须要编译这两个包,然后把运行包放入到system32目录下(不然会提示找不到运行包),以供用户动态连接时使用,另外一个就是正常的安装.也就是说开发包需要再delphi的bpl目录中,而运行包是在系统目录下的.当然这个运行包在编译的时候是必须的(不管你用不用动态连接),因为他为你提供了动态连接的选择,但是有的开发包,不给你提供运行包,你只能进行静态连接.但是一旦生成静态连接的程序,就完全可以抛弃这个运行包了,但是如果是动态连接,必须在system32目录下有这个包.总之一句话,一旦第三方给你提供了运行包,你必须把他编译放到系统目录下,因为在他的开发包中描述中包含了运行包的信息,在安装开发包会主动搜索运行包的存在,当然他不会去delphi
的bpl下寻找,而会搜索环境变量,system32, system等路径.

抱歉!评论已关闭.