读书人

进去讨论一下缩小Delphi 编译出来的ex

发布时间: 2013-03-26 09:54:34 作者: rapoo

进来讨论一下缩小Delphi 编译出来的exe体积
我有3个程序,
1个 exe 360K
1个 dll 220K
1个 ocx 500K

一共是 1080K, 用InnoSetup制作成安装包后大概600多KB


当我 Build with runtime package 勾上以后编译

exe 16K
dll 40K
ocx 55K

但是 这样发布就必须要带 bpl

vcl70.bpl 1300K
rtl70.bpl 700K

一共是2000多KB ,用InnoSetup 压缩后是 1100KB


重新编译 vcl70.bpl (1100KB) 和 rtl70.bpl(450KB)

这样压缩后的大小 还是有900KB 仍然比原先的大

为什么 外带bpl 比自带bpl 体积还要大? 不科学啊.
有什么办法可以再缩小点体积?

[解决办法]
所谓“自带BPL”其实不是把整个BPL塞进去,是需要的函数编译进去,自然就比带完整的BPL小的多,体积的话没啥好办法,其实VC++编译出来的也很大,只不过因为VC++的运行时库WINDOWS已经带上了,所以感觉小。
[解决办法]
如果exe/dll更多时,Build with runtime package才合算

一般还是aspack/lzexe等exe压缩工具处理一下好了
[解决办法]
UPX加压缩壳,一般都能压缩至原来的60%左右
[解决办法]
用SDK写,别用第三方控件。
[解决办法]
起码exe和dll可以合并吧。

[解决办法]
aspack,能缩小很多。
[解决办法]
三个编译成一个exe
[解决办法]
想体积小的话,用Kol库吧
[解决办法]
预感lz会被 硬盘不值钱党 喷的体无完肤
[解决办法]
别太纠结体积

想一想几年前一个大型的网络游戏可能就300M左右
现在呢,基本都是2G以上
[解决办法]

引用:
别太纠结体积

想一想几年前一个大型的网络游戏可能就300M左右
现在呢,基本都是2G以上

+1
电脑内存都2G了。
[解决办法]
引用:
引用:

那dll也能放进exe啊,把dll的输出表放进exe里不就行了



哦?没听说过? 愿闻其详

把EXE 当做动态链接库用么?


把dll作为为exe的资源编译进去(可见于万一博客中关于资源文件的那几篇),exe运行后先把资源抽出来另存为dll文件,然后加载dll.或者直接加载内存中的Dll(网上有代码)
[解决办法]
exe 文件大小,已不是程序的问题。关键的程序可靠性如何。

读书人网 >.NET

热点推荐