15

作为测试,我决定使用 Delphi 4、5、6、7、2005、2010 和 XE3 在 Delphi 中创建一个简单的“Hello world”应用程序。该应用程序只不过是一个 TForm,一个带有调用 ShowMessage('Hello world') 的 OnClick 事件的 TButton。

以下是关闭调试后每个最终 EXE 的结果:

EXE 的文件大小

谁能解释为什么 XE3 版本比 Delphi 以前版本的平均值大 26 倍?

这是我的 XE3 项目设置:

设置 1

设置 2

4

4 回答 4

10

更改为“发布”配置后,您可能只进行了一次编译。尝试进行重建(而不是重新编译)。这将真正激活可执行文件上的发布配置,并且可能会更小的文件大小。

对我来说(Delphi XE2),Windows 报告的同一应用程序(发布配置)的大小是:

1.52 MB(1,600,512 字节)

于 2013-05-04T18:45:30.557 回答
6

我解决了这个问题。这归因于我在开发时 99% 的时间都在使用 Delphi 7,而 XE3 对我来说是新的。即使我在项目选项下选择了“发布”并在那里进行了调整,但事实证明,仅在此处选择“发布”并不会将项目置于发布模式。

这还不够

谁会想到我还必须使用项目管理器面板并双击“发布”项才能将项目置于发布模式?

解决方案

如果有人好奇的话,最终的 EXE 现在是 2,229 KB,仅是 Delphi 2010 之前的 EXE 大小的 5 倍。

于 2013-05-04T20:02:58.147 回答
2

只需将这些行放入您的 .dpr 文件中,即可将 exe 大小减少 20%

使用 Windows,

{$O+} {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}

于 2017-04-21T05:28:51.040 回答
0

好吧..有很多东西可以解释旧的delphi版本和新版本之间的区别..重要的是对unicode(D2009 .. DXE4)的支持,unicode中的所有字符都分配2个字节(在D1,D2,D3中,D7,...它们只分配一个字节)

于 2013-05-04T19:06:28.860 回答