`
hgfghe
  • 浏览: 71167 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

delphi 2010编译exe文件大小

 
阅读更多

  一、体积测试、比较
  环境: delphi2010 +  vclskin5.4 + dev5.0
  1、delphi2010 单窗口
  796KB
  2、delphi2010 单窗口 + button + text
  820KB
  3、delphi2010 单窗口 + vclskin                                                                        
  1.13MB(不加载skin文件),    1.16(加载skin文件)
  4、delphi2010 +  vclskin5.4 + dev5.0( cXbutton + cXtext)
  1.8MB
  5、delphi2010 +  vclskin5.4 + dev5.0( cXbutton + cXtext + cxGrid)
  4.18MB   ------
  6、delphi2010 +  vclskin5.4 + dev5.0( cXbutton + cXtext + cxGrid )   +fastReport
  5.67M  to   6.67MB
  二、原因
  1、delphi2010使用的wideString和RTTI
  wideString使字符串长度变成了原来的2倍,但增长体积是有限的
  RTTI是主要原因
  2、dev 
  a、使用了skin
  5.0版本当使用了QtGrid,会自动引入cxLookAndFeels, cxLookAndFeelPainters
  有时候将unit中skin都去掉效果不大,可以重新安装dev,安装时候不选skin,可以省下2M
  b、使用了print
  5M to   9M
  三、减小delphi体积的方法
  1、关闭RTTI反射机制
  自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制。而我们的工程并不每每都需要使用到这个功能,所以对于不需要使用的地方,我们可以简单的用下面的方法禁用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 METHODS([]) PROPERTIES([]) FIELDS([])} 
  {$IFEND}
  -------------实测,1.1环境下,文件大小为750KB;
  1.2环境下,774KB;
  1.3环境下,大小为1.10MB(加载skin文件)
  英文:http://www.zipplet.co.uk/index.php/content/article s_programming_delphi2010rtti
  2、关闭debug信息 (默认已关闭)
  Project -> Options -> Linking -> Debug information -> disabled
  测试:
  disabled:11.6MB
  an  disabled:31.2MB
  四、其它方法
  1、减小DELPHI应用程序的大小
  http://hi.baidu.com/51elv/blog/item/5637a5cff0ef14 31f8dc6124.html
  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
  五、其他文章
  dev编译exe
  http://www.devexpress.com/Support/Center/p/Q243794 .aspx?searchtext=cxLookAndFeels&p=T1|P0|0
分享到:
评论

相关推荐

    DEV动态加载皮肤有效减小EXE大小

    DEV动态加载皮肤有效减小EXE大小,生成EXE有3兆左右。不会像默认的有近20M。使用开发语言delphi7 , DEV版本是13 。

    Delphi 指定大小分割文件小程序.rar

    Delphi 指定大小分割文件小程序,Delphi 无控件实现文件切割机,源代码无三方控件,可直接编译。打开程序后选择需要切割的文件、选择目标文件夹、然后开始切割,将自动保存到目标文件夹中。同时在切割前,程序允许...

    Delphi2010资源,delphi2010快捷键

    给你个比较常用的delphi 快捷键列表,能提升工作效率 其实这些东西在ide的设置里都...SHIFT+箭头 以1像素单位更改所选控件大小 ALT+F11 Use某个单元 SHIFT+F10 等于鼠标右键(WINDOWS快捷键)。 SHITF+箭头 选择文本

    图片资源DLL的编写及调用 delphi2010代码

    也是给朋友写的一个DEMO。 可以把主程序中的图片都放在资源DLL中。(别的音频什么的都可以)有效地使用主程序文件大小减小。...这是delphi2010代码,不能保证别的版本正常编译。 有本人写的注释,新手可以看看。

    delphi11(实际上是delphi10.5)补丁

    1、Delphi macOS 64位ARM编译器和工具链,包括为Intel/Arm AppStore提交构建通用二进制文件 2、Delphi语言支持二进制小数和数字分离器 3、改进了C++工具链,对C++类型的RTTI进行了大修,包括在Delphi类型上使用...

    exe文件脱壳步骤txt下载

    2.对程序专门进行压缩,以减小文件大小,方便传播和储存。 壳和压缩软件的压缩的区别是 压缩软件只能够压缩程序 而经过壳压缩后的exe、com和dll等程序文件可以跟正常的程序一样运行 下面来介绍一个检测壳的...

    Delphi7 汉化包

    为了减少大家的开支,我将文件的大小尽可能缩小,也不得已使用可执行程序压缩工具对.Exe文件、.Bpl文件进行压缩。但还是很大,请大家原谅。如果想修改,可以以下面的邮件地址向我索取没有压缩的文件,我会抽时间...

    delphi 7 程序压缩工具UPXShell 源码

    该工具可以有效的压缩delphi7编译的exe,dll,bpl等可运行文件大小.简单易用,功能强大

    Excel97 sdk For Delphi

    这是c语言版Excel97 SDK的 Delphi 转译. 其中包括XLCALL32.H的Delphi转译代码和相应的函数声明,...另外,包中的WIHDWOS.PAS、types.pas等文件是我用于压缩编译文件大小的,各位在应用XLCALL32.PAS时,可以不用这些文件。

    UPX压缩文件最新版图形界面源程序(Delphi 11)

    EXE文件和DLL文件压缩工具UPX图形界面源程序,通过该程序能够获得: 详细参见:https://blog.csdn.net/sensor_WU/article/details/129022703?spm=1001.2014.3001.5501 1. 最新版Delphi 11.2源程序; 2. 学会将命令行...

    U盘病毒新变种之文件夹杀手Delphi造源码

    该病毒会在每个磁盘的根目录复制exe文件,图标为xp文件夹图标,大小为37k,你的根 目录下有多少文件夹它就会复制多少个病毒,而且文件名会和你每个磁盘根目录下的文件夹名一样,原有的 文件夹会被隐藏。2.更改...

    delphi不需注册MIDAS.DLL

    能不能使用TClientDataSet又不用MIDAS.DLL呢? 很简单,就是uses一下MidasLib单元! MidasLib单元在Delphi6以及DELPHI的更高版本中才有,是... 然而,编译后程序大小一定会增加200k以上,即使使用包编译模式。

    delphi数据库实用编程100例

    delphi数据库实用编程100例原书配套的光盘,包括书中全部实例的代码。由于上传文件有大小限制,因此删除了实例代码中所有的exe文件,运行时请自行编译即可。

    反编译工具.NET Reflector 6.5.0.135

    只要双击下载后的Reflector.exe文件即可运行Reflector。  默认情况下,Reflector会打开一组公共程序集(mscorlib、System、System.Data、System.Drawing等等)。每个打开的程序集都列在Reflector的主窗口中。单击...

    Embarcadero.Delphi.10.2.2.v25.0.29039.2004.Lite.v14.3完整版

    包名称 文件大小 作用 Ext.3th.7z 91,226,756 网友收集的一些第三方扩展 Ext.Addons.7z 100,567,057 InterBase XE7、FastReport4 等 Ext.Android.7z 1,640,823,804 Android 编译环境 Ext.Help.7z 299,342,286 ...

    武希松大牛的dll Hook单元,delphi源代码加demo

    被链接进Delphi的DCU和目标文件中.不需要额外带DLL. BeaEngin引擎 http://www.beaengine.org/ 限制: 1.不能Hook代码大小小于5个字节的函数. 2.不能Hook前五个字节中有跳转指令的函数. 希望使用的朋友们自己...

    Delphi 7 新概念百例

     本文件是《Delphi 7 新概念百例》的配书源代码,包含编译好的可执行文件。内容如下:├─综合应用篇│ ├─87 用TreeView来显示数据库信息│ ├─86 显示彩色数据表格│ ├─85 文件切割器│ ├─84 加密解密器│ ...

    广通:简单小巧局域网聊天、快速(10MB/S)文件(夹)传输

    简单小巧局域网聊天、快速(10MB/S)文件(夹)传输 在delphi2010下编译通过,大小只有182KB,无需安装

    delphi EhLib 9.5.012 Full Source 专业版 .rar

    (已编译的演示文件在该库的评估版中可用) 如果您使用了库的早期版本,则可以阅读摘要 的新功能和更改中的内容history-eng.html。 此版本库中有关新功能的更多详细信息 可以在文件中找到-关于EhLib 9.5 Eng....

    [修正版]修改ReportBuilder10.6支持QRCode二维码

    3、使用delphi打开rb的source目录下的rbRCL106.dpk项目,然后编译,输出的rbRCL106.bpl文件为目标文件(一般输出到这个目录下Delphi6\Projects\Bpl) 4、把rbRCL106.bpl文件替换掉原安装rb时的同名文件则可,一般该...

Global site tag (gtag.js) - Google Analytics