减小Delphi可执行文件的大小,非高手莫入(200分)

  • 主题发起人 主题发起人 yayongm
  • 开始时间 开始时间
我认为少用控件。多用API,如果只有一个PAS文件里的API,直接把这个API放到程序
的单元声明,其实有的时候没有必要对体积这么在意的
 
我认为少用控件。多用API,如果只有一个PAS文件里的API,直接把这个API放到程序
的单元声明,其实有的时候没有必要对体积这么在意的
 
to 777kkk:
>>有人说,最酷的程序员用KOL

这个KOL怎么用呀?我下载安装了,可是生成的文件无法编译,总是报错,说:
NewForm1是未声明的标识符!然后光标停留在Myproject_0.inc文件中的这一行:
NewForm1( Form1, nil ); 整个Myproject_0.inc文件内容如下:

{ KOL MCK } // Do not remove this line!
{ Myproject_0.inc
Do not edit this file manually - it is generated automatically.
You can only modify Myproject_1.inc and Myproject_3.inc
files. }

NewForm1( Form1, nil );
{$I Myproject_1.inc}

{$I Myproject_2.inc}

{$I Myproject_3.inc}

Run( Form1.Form );

{$I Myproject_4.inc}

请777KKK大虾指教一下,或者告诉我详细的使用方法(我虽然是看着英文
Readme做的,可是好像还是哪里错了),谢谢!
 
dll
res
dcreate object
api
etc
 
动态创建控件
free掉
 
这个帖子有KOL入门
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1290924
另现在KOL支持报表了:)
 
其实运行时期装载DFM确实不错的,有时改改界面什么的就不用编译了。
 
用delphi的包,编译时选中build with runtime packages,
程序中可以使用{$I}编译指令,
 
我觉得Borland将Delphi制作出来,目的是让程序员能够更快,更有效率
地制作出应用程序。基于这个想法,当然也就是在编程的时候能够更简单,
而不是在结果的应用程序的大小上做文章。
我看大家不要把精力放到这个上面,500K和800K的程序,在运行的时候速
度上能有多大区别呢?现在的硬盘和CPU够强劲了吧。
如果有某种特殊的要求,一定要做出个小的程序来,那就干脆用PASCAL,
或者花点时间去弄弄VC。
 
Delphi 是静态编译,Vc,Vb有动态编译。没得比较啊/
Delphi程序可以不考虑支持环境而将执行文件发布,Vc,Vb的程序没有Runtime能运行吗?
 
是不是准备做木马?否则要这么小干吗?
 
只要程序包含窗体就不会小,除非你的窗体都是用API生成。
 
yayongm 的这一句“如果有人转载,请标明作者Email:yayongm@sohu.com”,说实在说,我
是很不以为然的。

不过,看来关注的人很多,所以,我也说说看法,但也非独说给yayongm听。此外,如果有
人要“转载”的话,是不必署我的Email了。

1. 让DFM不存在的方法之一
这是有的,不过,现在来看,未必会有多大的用。DFM2PAS这个工具是用来将DFM文件转换
成.PAS,它生成的.PAS文件可以自动创建你要的这个窗体。大多数情况下,它使用API。不
过,如果你的DFM足够复杂,或者使用了第三方控件,它就难以胜任了。
http://monster.icc.ru:8080/~alex/PAS/dfm2pas.zip
http://monster.icc.ru:8080/~alex/PAS/

2. 让DFM不存在的方法之二
这一种却是直接生成.DPR,它也是用API创建窗体。与dfm2pas大同小异。
http://vcl.vclxx.org/DELPHI/D32FREE/DFM2DPR.ZIP
http://ivs-d.chat.ru/

3. 让DFM不存在的方法之三
DFMToSource v.2.1。这是我所知道的最完整的方法。它是一个工具,帮
助你生成代码并可用于delphi中。但是,它是商业化的。所以,你可能要
考虑付$。
http://www.datastead.com/dfmtosrc/dfmtosrc.zip
http://www.datastead.com/

4. 让DFM不存在的方法之四
我本不想再说更多了,但今晚我又在torry上找到一个最新的,或者它也将
是最好的解决方法。并且,最好的是,它有Full Source。
使用Component File I/O (streaming) Routines v.1.00这个控件。
http://www.torry.net/vcl/vcltools/compound/componentfileio.zip

5. 关于KOL
请相信,它是绝对值得一用的。但如果你不是高手,或者没有更进一步的资
料的话,你应该放弃它。因为他可以让你走入迷途。
如果你打算一开始就用KOL,或者会是好的选择,但如果想将一个现有的应
用转成KOL,那么,我建议你别做这样的尝试。
 
是阿,我现在得exe 文件有10M了,还好老板不懂,
唉,我也想减肥阿,就是没有灵丹妙药.
 
我觉得在大容量高宽带的今天讨论这些已经没什么必要了,
体积大的程序未必效率低,多讨论些效率问题更有实用价值。
 
后退
顶部