请问大师们,DLL 和 Package在Delphi框架设计里,那个好?
解决方案 »
- stringGrid中某一单元格为空,如何让它自动为前一行对应单元格的值?
- 关于filewrite的问题
- 绝对高难度问题!大家都来讨论下^-^
- 高手求急!用fastreport实现报表,我用的是frprnttbl控件,想在报表数据后增加合计行,在程序中如何实现?多多感谢!
- TQuickRep的Preview窗体中能够控制打印某页,为什么我的TPreview窗体中就不起作用?
- Query1.Append提示不能修改只读的dataset的错误怎么处理??在线急等……
- 做了个网站:代码酷,收集源代码下载,请各位赏光
- 请教一个问题。
- 写一个控件,继承于TComponent,想在此控件中处理它的父窗口的按键事件,该怎么做。
- 如何让fastreport2.44中的frPrintGrid1打印出来的报表自动居中
- 如何添加事件与删除事件?
- ADOconnection连接SQL时,显示'错误枚举数据服务器'
DLL可以供其它语言使用
bpl只能用于同版本的Delphi使用.如果只供Delphi使用bpl比DLL更灵活,更容易控制.
而采用Package就可以定义全局变量,每个模块都能访问阿?
如果其它程序也调用,DLL好些.
如果你的程序不打算用dll去封装VCL组件,当然用dll要好些,因为可供其他语言调用,而且无须其它包的支持;
如果你打算用bpl或dll将程序模块化,建议使用bpl.因为在dll中封装VCL用遇到许多复杂问题,如在dll中的VCL组件焦点无法转移\出现莫名的非法访问等,主要原因是dll和主控程序中均有Application和Screen对象,另外dll与主控程序间的通讯也成问题.因为dll与主控exe是两个孤立的世界.
如果你使用BPL来封装VCL,情况就大不同了,主控程序与包中只有一个Application和Screen全局对象,同时BPL是面向对象的,包中的代码与主控程序的代码就好象在一个工程中一样,它们之间的通讯要简单很多.缺点是在发布程序时有拷贝许多系统BPL和第三方组件的BPL