【程序编程相关:增强型DBGrid2Excel-- 支持】
【推荐阅读:设置可以从Windows资源管理器拖文件】首先要更正一个错误的结论:只要程序用到borland的包,就必须要带上vclxx.bpl.【扩展信息:delphi的调用约定】
非也!
想必用dll来实现功能模块分割的伙计们都有痛苦经历:无法导出类;无法共享主进程的全局变量;调用dll时可能要传递一大堆参数;令人心烦的pchar;等等等等...borland通过包borland package library来解决了这些痛苦,在这里我们只讨论运行时包.
阿亮在2003年就因为工作原因研究了一下delphi 5的包,并成功的将一个大的系统按功能模块分拆到单个运行时包文件中,当时就想把vcl50.bpl重新编译一下,没有成功,很不甘心!头段时间安装了delphi 7,想重新试一下,结果居然成功了,也就是说,你可以写一个个头很小的exe文件(这对于有些程序员来说非常有吸引力,他们希望自己的的程序越小越好,甚至到了痴迷的程度,阿亮也算其中一员),可以多小呢?譬如20kb的exe,这个主程序只是一个框架,它可能仅包含一个主窗休.初始化一些应用需要的全局结构或变量.实现动态装入与卸载包的代码,后面至少带一个被重新编译的vcl包,当然,这个vcl包可能包含所有的delphi提供的标准单元,也可以仅包含你的应用需要的单元.
你可能发布的应用程序结构可能是以下结构:
app.exe (* 主程序 *)borland.bpl (* 被重新编译过的borland vcl单元运行时包 *)... 下一页