一般来说,由Delphi生成的EXE文件,要比其由它编程语言生成的体积大一些。这主要是由于使用VCL的原因(当然,VCL是有许多优点的!) 
以下是减小EXE文件大小的几种途径:

01) 使用加壳工具(如 UPX,ASPack 等) 
02) 使用 KOL 
03) 不使用VCL来编写程序 
04) 使用 ACL (API 控制库) 
05) 使用 StripReloc 
06) 去除运程调试信息与 TD32 
07) 把允许的代码写到 DLL 中 
08) 不要在设计时把图片放置在 Form 上,而是运行时加载 
09) 使用被压缩的图片(使用JPG 而不用 BMP) 
10) 在 DFM 文件中减少属性 
(参考后面的链接 “怎样使您的EXE文件更轻便”) 
11) Use the TStringList replacement by ~LOM~ 
Use the Minireg - TRegistry replacement by Ben Hochstrasser

01) 
UPX 是一个免费、轻便、可扩展和高性能的可执行文件加壳工具,支持多种不同的可执行文件格式。它可以达到非常优秀的压缩比,且可以非常快的解压。

http://upx.sourceforge.net/

ASPack 是一款高级的Win32可执行文件压缩器,可以减小32位Windows程序的大小达70%。(ASPack的压缩率提高了zip文件格式产业标准10-20%) ASPack使得Windows 95/98/NT 程序与库更小,降低了网络的传输量。它也可以在一定程度上保护程序免受那些非专业黑客的反向工程。压缩后的程序在运行时基本上没有什么性能上的影响。

http://www.aspack.com/aspack.htm

{****************************************************************}

02) 
KOL - (关键对象库 Key Objects Library)是用于 Delphi 开发强大的32位Windows图形用户界面应用程序一套对象库。它比用VCL进行开发可以使程序变得更小。

http://bonanzas.rinet.ru/

{****************************************************************}

03) 
不使用VCL 
如果您想要实现瘦小的EXE文件,就不要使用VCL,Delphi 完全可以让您通过调用WinAPI函数来实现Delphi 100%的丰富功能。

http://nonvcl.luckie-online.de/ 
http://www.erm.tu-cottbus.de/delphi/stuff/Tutorials/nonVCL/index.html 
http://www.swissdelphicenter.ch/en/delphizeus 
http://www.tutorials.delphi-source.de/nonvcl/

{****************************************************************}

04)

ACL (API 控制库 API Controls Library) 
纯以API写程序是完全可能的,但我希望达到两个目的 —— 写出瘦小程序和生成新的控制库,在写程序的时候,也就创建了我自己的TWinControl和全部标准的Windows控制类.

http://www.apress.ru/pages/bokovikov/delphi/index.html

{****************************************************************}

05) 
StripReloc是一个免费的(GPL 许可协议) 命令行应用程序,用于移去Win32 PE格式文件多余的重配区段(".reloc") ,以减小它们的大小。大多数编译器/链接程序(包括Delphi)会在EXE文件里写入重配区段,但由于EXE文件从不会重新部署,所以该区段只会浪费空间。

http://www.jrsoftware.org/striprlc.php

{****************************************************************}

06) 
去除调试信息

Debug信息会占用一部分空间的,对于最终的发行版,完全可以不要这部分信息 。 
Delphi IDE菜单 
    project-Options-Compiler - Debugging 与 
    project- Options - Linker - EXE and DLL options

去掉下面两项,可以减少文件的大小 
"Include TD32 debug info" 与 "Build with runtime packages".

{****************************************************************}

08/09) 
对于图片

最好不要在设计期把图片加到窗体,尤其是大的图片,因为这样以来,Delphi会把图片也编译到你的可执行文件中去,从而增大EXE文件的尺寸。建议在运行时,以代码的方式,实时的载入图片。

{****************************************************************}

10) 
怎样使您的EXE文件更轻便: 
http://www.undu.com/DN970301/00000064.htm

{****************************************************************}

11) 
TStringList replacement by ~LOM~ 
Minireg - TRegistry replacement

Trackback地址: http://www.yculblog.com/trackback/4/340843

减小Delphi的Exe文件大小相关推荐

  1. [Matplotlib] 减小生成的 PDF 文件大小 - Rasterized

    介绍 有时候,我们在 Matplotlib 中画图的时候,如果元素过多,例如图中有几十万个点,那么图片的大小会非常大.本文介绍如何减小生成的 PDF 文件大小. 解决方案 使用rasterized=T ...

  2. 减小Delphi xe系列生成的exe文件大小

    自xe系列以来.delphi生成的可执行文件都比较大.动辄10M以上.其中主要是包含了调试信息.发布后,即可删除.这样可大大减小可执行文件的大小.方法:Project->Options-> ...

  3. delphi让exe开机自启动

    procedure AutoRunOnSystemStart(Title, FileName: String); const   _Software_Microsoft_Windows_Current ...

  4. 精简ICO图标可减小EXE程序文件大小

    精简ICO图标可减小EXE程序文件大小 使用VS2010编写的小程序,两百行不到的代码,生成的可执行程序却有3百多KB!心想不该如此之大才对.在下次编写小程序的时候,在刚建立解决方案的时候,生成的默认 ...

  5. 为什么delphi编译生成的exe文件这么大

    delphi 编译生成的 exe 文件,占用磁盘字节数比较大的原因在于,delphi 编译的文件中包含有其他的数据信息更多. 以下在 delphi xe 10 中,建立一个只包含空窗体的工程,通过多种 ...

  6. Arp病毒(motou.exe,smss.com,smss.exe)解决方案

    smss.com,smss.exe 文件名称:motou.exe 文件大小:335106 byte AV命名: Win32.Hack.ChatARP.y.372212 金山 Dropper.Win32 ...

  7. DELPHI bpl使用

    了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作.运用和动态.静态编译的工作方式.对初学DELPHI但仍对DELPHI开发不 甚清晰的朋友有一定帮助. BPL vs. DLL (原 ...

  8. DELPHI的BPL使用

    了解BPL和DLL的关系将有助于我们更好地理解DELPHI在构件制作.运用和动态.静态编译的工作方式.对初学DELPHI但仍对DELPHI开发不甚清晰的朋友有一定帮助. 第一部分:有关包的介绍 一般我 ...

  9. Delphi中ExtractFilePath、ParamStr以及更多文件/目录操作涉及的函数。附加对应的例子...

    先介绍ExtractFilePath和ParamStr ParamStr 该函数的原型是:function paramstr(i: Integer): String; 对于任何的application ...

最新文章

  1. 计算机试题高考作文阅卷组对考生,2017年广东高考评卷收尾
  2. 【GO语言】合理配置GOMAXPROCS提升一倍以上的性能
  3. 读过的好书[技术类]
  4. Android系统,动态找出一个包下所有的类
  5. 计算机英语词汇的特点,电子商务英语词汇都有哪些特点
  6. 45 MM配置-采购-条件-定价过程-定义定价计算方案
  7. PyTorch 1.0 中文文档:torch.nn.init
  8. Java中string中hashcode_Java String中的hashCode实现
  9. Python3 中打的迭代器与生成器
  10. oracle手动锁表和解锁_Oracle锁表查询和解锁方法
  11. 信息安全等级保护建设(二,三级)需上的设备
  12. oracle 数据库练习题及答案
  13. 手机版q群管机器人_手机QQ机器人怎么用,QQ机器人手机版怎么设置
  14. 怎样备份计算机里的驱动程序,怎么备份电脑的驱动 驱动人生备份驱动方法
  15. php 正则车架号,js 正则校验车架号VIN
  16. 请告诉孩子:努力读书,是为将来拥有更多选择的权利,而不是被迫谋生
  17. chromium - DISALLOW_IMPLICIT_CONSTRUCTORS
  18. Spring 官方修复零日漏洞,推出 Spring Boot 2.6.6、2.5.12 等新版本
  19. canvas绘图 echarts 基本使用
  20. 2014年元旦放假安排,又一个坑爹的假日

热门文章

  1. 让程序员不再苦逼的四大神器
  2. (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径
  3. 起步,停车——走好你的IT运维管理之路
  4. 美国空军开发新型机载网络技术
  5. hdu 2896 病毒侵袭(AC自动机)
  6. Spring核心之对 IOC的理解
  7. 获取eclipse 运行时,bundle的相对路径
  8. OpenCV---图像金字塔原理
  9. Linux bridge 资料链接
  10. linux rz xshell