如何减小Delphi应用程序(EXE)的大小

一般来说,由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
Use the Minireg 
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) 
Use TStringList 
Use MiniReg
本文来自Delphi之窗,原文地址:http://www.52delphi.com

时间: 2024-10-29 19:06:28

如何减小Delphi应用程序(EXE)的大小的相关文章

减小Delphi 2010/delphi XE编译出来的文件大小

1.禁用RTTI 禁用的方法很简单,就是要在工程(dpr文件中.Delphi2010下项目文件是dproj文件,但dpr文件仍然是默认的编写代码的项目文件)的Uses语句前添加下面的定义就可以了: { Reduce EXE size by disabling as much of RTTI as possible (delphi 2009/2010) } {$IF CompilerVersion >= 21.0} {$WEAKLINKRTTI ON} {$RTTI EXPLICIT METHOD

减小iOS应用程序的大小

减小iOS应用程序的大小 本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相关技巧(当第一次下载和安装程序时).如果是针对升级程序的话,可以看这篇文章(减小iOS应用程序升级时所需下载的大小)(这与第一次安装使用的工作原理有所不同). 检查应用程序 首先是检查.app bundle,看一下程序包里面哪些文件占的空间最大. 在做任何相关优化之前,我们需要做一些权衡.通过权衡,

教程:如何减小iOS应用程序的大小?

本文译自:Reducing the size of my App Q: 怎样才能让我的程序安装包小一点,让程序的下载和安装更快速? A: 本文收集了一些减小程序安装包大小的相关技巧(当第一次下载和安装程序时).如果是针对升级程序的话,可以看这篇文章(减小iOS应用程序升级时所需下载的大小)(这与第一次安装使用的工作原理有所不同). 检查应用程序 首先是检查.app bundle,看一下程序包里面哪些文件占的空间最大. 在做任何相关优化之前,我们需要做一些权衡.通过权衡,可以知道把优化的重点集中在

Delphi应用程序的调试(五)其他调试工具

Delphi应用程序的调试(五)其他调试工具 Delphi7中提供了一些附加调试工具来帮助用户检查程序错误.从性能上讲,其中一些工具属于高级调试工具.尽管高级调试工具不像其他工具那样常用,但对于经验丰富的编程人员来说,它们是非常有用的. Evaluate/Modify对话框(The Evaluate/Modify Dialog Box) 该对话框用于检查变量的当前值和修改变量的值.使用这个对话框,用户可以修改某个变量的值来测试不同的输出结果.在调试期间改变一个变量的值,使用户能测试程序不同参数的

第一个Delphi小程序

第一次应工作需呀,接触这个语言,今晚在自己的电脑搭建好环境,写的第一个超简单的Delphi小程序! var temp:Integer; //求个位数 procedure TForm1.BitBtn1Click(Sender: TObject); begin temp := StrToInt(Edit1.Text); Label1.Caption := IntToStr(temp Mod 10); end; //十位数 procedure TForm1.BitBtn2Click(Sender: T

XINU安装程序.exe一键配置好XINU实验环境 - imsoft.cnblogs

  还在一步一步配置复杂的XINU吗?XINU安装程序.exe一键配置好XINU实验环境. XINU安装程序.exe使用说明: 本程序配合<网络协议分析与实现>/(胡维华等编著)课本使用 本程序会自动解压安装配置好的XINU系统(包含XINU和VPC文件夹)到D盘根目录 解压此程序后,用VPC2007虚拟机软件打开或者导入即可. 附件还包含一系列使用时需要用到的程序,以及笔者自己根据使用需求建立的快捷使用方法. 推荐直接下载:VPC 2007 精简版.exe,XINU安装程序.exe,XINU

关于VC6.0++执行时会程序exe会出现已停止问题。

写一段代码时,写完后成功完成编译,并执行.但是出现程序exe会出现已停止的问题. 在以前也出现同样的问题,但是并没有发现是何原因.但是发现这次的出现问题的原因所在. 在scanf语句中,漏掉了&,但是依旧编译成功了,导致了问题所在. 在添加了&后,问题没有出现,成功解决!

android 应用程序自适应屏幕大小(转载)

android应用自适应多分辨率的解决方法 1. 首先是建立多个layout文件夹(drawable也一样).在res目录下建立多个layout文件夹,文件夹名称为layout-800x480等.需要适应那种分辨率就写成什么.注意:         a.   较大的数字要写在前面:比如layout-854x480而不能写layout-480x854.         b.   两个数字之前是小写字母x,而不是乘号.2. 在不能的layout下调整layout 的长宽等各种设置.以适应不同的分辨率

android 应用程序自适应屏幕大小

android应用自适应多分辨率的解决方法 1. 首先是建立多个layout文件夹(drawable也一样). 在res目录下建立多个layout文件夹,文件夹名称为layout-800x480等.需要适应那种分辨率就写成什么. 注意: a.   较大的数字要写在前面:比如layout-854x480而不能写layout-480x854. b.   两个数字之前是小写字母x,而不是乘号. 2. 在不能的layout下调整layout 的长宽等各种设置.以适应不同的分辨率. 3 最后需要在Andr