delphi – 减少exe文件

使用Delphi(或者一般来说,任何工具,如果存在的话),是否可以减少exe文件的大小,删除所有不使用但是存在的代码
(例如,存在但从未被调用函数或过程)。
我记得使用Pascal,使用单元(没有对象),编译器只包含真正使用的过程和函数,并将从最终的exe中删除单元中的未使用的例程。

使用Object-pascal,我记得在Delphi 1中,一个对象的所有成员都包含在exe中;
有什么改变,直到德尔福XE2?

解决方法

如果您不使用RTTI,您可以将其添加到.dpr文件的顶部(紧接在程序之后)以删除额外的RTTI信息:
{$IFOPT D-}{$WEAKLINKRTTI ON}{$ENDIF}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}

如果你想把它从所有的RTL / VCL单元中删除,那么你也需要把它们放在你的项目文件中,以便上面的设置可以生效。我不认为我会建议这样做,因为我不相信可执行大小的减少值得编译您自己的RTL / VCL的复杂性。

您也可以在.dpr文件中再次添加以下内容

{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}

这将剥离.exe中不需要的重定位信息。不要将其添加到DLL或包中!

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...