delphi xe禁用rtti
-
09-10-2019 - |
题
我最近使用了Delphi Xe,但由于RTTI(我认为),EXE的大小很大
Howto删除RTTI,我可以使我的应用程序大小与Delphi 2009应用程序(490 KB)一样小,而无需进行任何功能; RTTI的用途是什么
解决方案
简而
{$ rtti显式方法([])属性([])字段([])}}
注意 从XE6及更新开始时,需要在您要禁用RTTI的每个单元中。 在此之前(XE5及以下)它可以在DPR文件中,并适用于项目中的所有单元。
其他提示
您的问题与RTTI无关。如果您谈论的是相对较小的增加(100-200k),则是由于RTL中的额外功能(用于Unicode支持等)。如果增加了500-700K左右,请检查是否链接VCL UI单元(表格,控件等)。如果您增加了3MB,那么您已经打开了额外的调试符号。
这是因为某些通用功能已添加到系统单元中。仿制药是在2009年添加的,但在系统单元中,一些类在XE和XE2中用仿制药重写。恕我直言
添加此标志以减少尺寸 在DPR文件(项目>查看源)中 到每个单个单元(如XE5)*。
{$SETPEFlAGS IMAGE_FILE_DEBUG_STRIPPED or IMAGE_FILE_LINE_NUMS_STRIPPED or
IMAGE_FILE_LOCAL_SYMS_STRIPPED OR IMAGE_FILE_RELOCS_STRIPPED}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
(*) 注意 从XE5及更新开始时,需要在您要禁用RTTI的每个单元中。 在此之前(XE4及以下)它可以在DPR文件中,并适用于项目中的所有单元。
我认为这不是RTTI为您的应用程序增添太大尺寸的原因。你怎么知道这是?
不隶属于 StackOverflow