我之前使用过UPX来减少我的Windows可执行文件的大小,但我必须承认我对这可能产生的任何负面影响都很天真.所有这些包装/拆包的缺点是什么?
是否存在任何人建议NOT UPX-ing可执行文件的情况(例如,在编写DLL,Windows服务或定位Vista或Win7时)?我在Delphi中编写了大部分代码,但我也使用UPX来压缩C/C++可执行文件.
另外,我没有尝试使用UPX来保护我的exe不被反汇编程序,只是为了减少可执行文件的大小并防止粗略的篡改.
我使用Delphi 2009为桌面程序发布了一个可执行文件(.EXE).我没有运行程序所需的外部DLL或资源.
我使用两个组件:LMD Innovative的ELPack和Sergey Tkachenko的TRichView,它们被编译成我的可执行文件.
当我使用"Release"构建配置构建我的生产版本时,生成的可执行文件是13,533 KB.
在使用Delphi 2009之前,我使用的是Delphi 4.它生成的可执行文件只有2,671 KB,同时包含相同的两个组件,并且基本上具有与我当前版本相同的代码.
我确实理解Delphi 2009完全是Unicode(这是我升级的主要原因),并且Unicode可以导致大小增加一倍.但这大约要大5倍.
我的可执行文件必须保持5倍大的原因吗?或者有一些简单的方法来减少可执行文件大小的重要部分?
请注意.有些人正在回答压缩Delphi EXE的方法.这不是我想要做的.我试图简单地看到为什么这么多空间被用来删除可能没有必要的东西.如果这样做,如果需要,仍然可以在之后进行压缩.
安装后,可执行文件的大小无关紧要.它用于下载目的,并最大限度地减少要压缩它的服务器负载和下载时间.我更喜欢使用Inno Setup并在安装例程中压缩程序本身.然后在安装时,它将扩展为完整大小.这既可以防止可能的病毒检测,又可以消除在内存中解压缩程序所需的额外启动时间.此外,我编写了可执行文件和我的安装例程的代码,并且一些压缩技术与此不兼容.
有关压缩的更多信息,请参阅StackOverflow问题: Delphi EXE压缩器?
ldsandon让我准确提供我正在使用的选项,所以他们在这里:
我需要编写一个Windows XP/Vista应用程序,主要要求:
该应用程序用于以网络为中心的使用,类似于ICQ或Gtalk客户端.
已经delphi win32 exe的大小是~850 kb,他们有任何使exe大小更小的路线图,(我知道大小是因为vcl unicode RTTI等等),delphi编译整个单元甚至只有一个小功能这个单位是必需的.所以有任何设施,或第三方产品,(我知道kol和mck做同样的事情)
delphi ×3
c++ ×2
winapi ×2
compression ×1
executable ×1
mfc ×1
size ×1
upx ×1
windows ×1
windows-xp ×1