如何减少可执行文件的长度?(50分)

  • 主题发起人 主题发起人 jjid
  • 开始时间 开始时间
J

jjid

Unregistered / Unconfirmed
GUEST, unregistred user!
我的可执行文件的长度现在已有3.5M,(主要是其中有不少报表)
我不想将他们分开,据说在DELPHI中选项Debug Info设成 OFF
就可以减少可执行文件的长度,但我试过,没有效果.有无办法可以
大幅度减少可执行文件的长度?
 
自己用api函数来创建form等等控件,可以大幅度减小长度。但是很麻烦哦。:)
 
如果实在不行,又嫌直接使用API创建Form麻烦,可以使用Aspack等Exe打包软件
很有效的,有时压缩比能达到30%。对程序的运行速度也没有明显的影响。
 
用Upx来压缩也可以,压缩率比Aspack高一点,而且是免费的。
可以从<a href="ftp://210.34.6.1/PUB/Tool/UPX/0.93/Win/upx093w.zip">这里</a>下载。
 
upx比较不错
 
达到3.5M就有点不正常了。
估计你的界面设计中用到了太多的比较大的图形,若能够忍痛割爱,
估计文件大小就可以很快降下来了。
 
动态创建控件可以减少可执行文件大小,不过一定记住要释放.
 
1.把程序里用的图形图像放到DLL资源里,可大幅度见效.
2.upx,aspack.
3.少用第三方控件.
4.不嫌费事可把程序分解放入DLL.
5.使用包。
6.使用包和DLL(最见效).




 
rss 说得很完全,但我另补充一点:
在exe文件已经这么在的情况下,程序运行时对系统资源的需求是很大的,
(或许要>50%吧),而你又提及使用了大量的报表,如用的是qreport的话,
估计你的程序在运行一定时间后出错的概率会极大,haha,因为qreport有
bug ,每看一第报表你的系统资源会
dec(1~2%)
一直看报表则资源一直会降到0,接下来就是死机了!

所以强烈推荐你用其它的报表工具代之,如report builder,另这种报表工具会将报表作入数据库或文件中,不计入exe大小,这也会减小你的exe 大小

以上仅供参考!
 
所言及是,报表控件好多都会使你的程序不稳定而且很大。

强烈推荐国产ereport.
 
引用了TForm后程序会变的非常大,即使只有一个窗体的程序也要200多K,但如果
把uses 中的TForm去掉,用api自己建立窗口的话,exe文件只有10几k。
 
使用包.要 vcl 还要把文件带着到处跑.麻烦
在电子科技大的一个网叶上看到过类似工具.
www2....开头有谁记得吗?
 
www:
但是你用一个和用10个窗口exe的大小好象没什么大的变化?
 
同意www的意见,你如果怕麻烦的话,我记得有一个第三方的TForm控件可以代替
delphi的Form,据说可以减少尺寸,我没试过。
 
将project/options下packages中build with runtime packages
去除对号。
 
1.不把图形文件直接加入文件中,而在程序中动态调入
2.使用各种文件压缩工具,
http://www.csdn.net上课以下载
3.少用第三方控件.
使用dll或包都不是最好的办法,因为dll或包要随文件一起发布!

 
我的主页有ASPack 2.0,您可以试试,比1.x强多了。
还有我写的注册机,万无一失!
<a href="http://glowing.yeah.net">我的主页:《Delphi心得网站》</a>
 
PKLITE.EXE应用程序可以精简你的应用程序代码长度。(这是个DOS程序)
 
robert.1那里可以找到report builder这个工具。
可以mail通知我一声。
 
后退
顶部