程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何減小應用程序(EXE)的大小?

如何減小應用程序(EXE)的大小?

編輯: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 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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved