请问大师们,DLL 和 Package在Delphi框架设计里,那个好?

解决方案 »

  1.   

    各有所长各有所短
    DLL可以供其它语言使用
    bpl只能用于同版本的Delphi使用.如果只供Delphi使用bpl比DLL更灵活,更容易控制.
      

  2.   

    就是那个仁兄说的。。不过建议用DLL,因为其它工具也可以调用。。呵呵。。
      

  3.   

    如果采用DLL方式加载多个模块时,是不是每一个模块,都要实例化一个数据库联接呢?
    而采用Package就可以定义全局变量,每个模块都能访问阿?
      

  4.   

    对,如果定义成DLL方式模块化,就可以让其他开发工具调用了!
      

  5.   

    是呀,如果只是自己程序用,还包好些.
    如果其它程序也调用,DLL好些.
      

  6.   

    到底该用dll还是用bpl,这是一个高级话题.
    如果你的程序不打算用dll去封装VCL组件,当然用dll要好些,因为可供其他语言调用,而且无须其它包的支持;
    如果你打算用bpl或dll将程序模块化,建议使用bpl.因为在dll中封装VCL用遇到许多复杂问题,如在dll中的VCL组件焦点无法转移\出现莫名的非法访问等,主要原因是dll和主控程序中均有Application和Screen对象,另外dll与主控程序间的通讯也成问题.因为dll与主控exe是两个孤立的世界.
    如果你使用BPL来封装VCL,情况就大不同了,主控程序与包中只有一个Application和Screen全局对象,同时BPL是面向对象的,包中的代码与主控程序的代码就好象在一个工程中一样,它们之间的通讯要简单很多.缺点是在发布程序时有拷贝许多系统BPL和第三方组件的BPL