delphi如何无源码调用bpl?

来源:互联网 发布:淘宝的促销大师怎么用 编辑:程序博客网 时间:2024/06/05 03:22

delphi开发中,link with runtime packages/旧版本叫build with runtime packages,常常给大家带来很多困惑,下面特此全面说明一下关于这个编译开关的选项应用.link with runtime packages这个开关勾上就叫动态编译,反之叫静态编译.动态编译是一种运行期加载bpl的技术,静态编译会将程序需要的bpl在编译器直接编译到exe中去.

   1.关于静态编译/设计期编译必须的文件:

        如果不勾选link with runtime packages(旧版本叫build with runtime packages),就是静态编译,静态编译会将唯一输出一个exe文件.

   静态编译/设计期编译的时候必须有dcu文件,dcp不需要.

    2.动态编译必须的文件:

         动态编译在编译时必须有dcp文件,在运行期需要有bpl文件.

         动态编译需要强调的一点,动态编译并非全部都是动态的;开关设置link with runtime packages旁边,有个Runtime Packages属性,这个是描述哪些包需要在运行期发布的.如果你的程序用到了某些包,但包又不再这个列表中,那么这个包实际上还是属于静态编译.发布的时候,不需要带上这个包的.

     3.关于link with runtime packages/build with runtime packages开关的使用:建议一般开发过程中,将这个开关勾上,这会加快编译的速度.当你发布的时候,可以根据自己实际需要,再决定是否将这个开关关闭.

     4.关于加载包的时机:一般被主程序use的,或者被相关的间接use的bpl,都会在程序初始化的时候自动加载;有些包并非被主程序直接引用,也没有被其他相关的包use,也就是一些采用代理模式的bpl包,这些包需要通过loadpackage才能被使用.


0 0