作为测试,我决定使用 Delphi 4、5、6、7、2005、2010 和 XE3 在 Delphi 中创建一个简单的“Hello world”应用程序。该应用程序只不过是一个 TForm,一个带有调用 ShowMessage('Hello world') 的 OnClick 事件的 TButton。
以下是关闭调试后每个最终 EXE 的结果:
谁能解释为什么 XE3 版本比 Delphi 以前版本的平均值大 26 倍?
这是我的 XE3 项目设置:
作为测试,我决定使用 Delphi 4、5、6、7、2005、2010 和 XE3 在 Delphi 中创建一个简单的“Hello world”应用程序。该应用程序只不过是一个 TForm,一个带有调用 ShowMessage('Hello world') 的 OnClick 事件的 TButton。
以下是关闭调试后每个最终 EXE 的结果:
谁能解释为什么 XE3 版本比 Delphi 以前版本的平均值大 26 倍?
这是我的 XE3 项目设置:
更改为“发布”配置后,您可能只进行了一次编译。尝试进行重建(而不是重新编译)。这将真正激活可执行文件上的发布配置,并且可能会更小的文件大小。
对我来说(Delphi XE2),Windows 报告的同一应用程序(发布配置)的大小是:
1.52 MB(1,600,512 字节)
我解决了这个问题。这归因于我在开发时 99% 的时间都在使用 Delphi 7,而 XE3 对我来说是新的。即使我在项目选项下选择了“发布”并在那里进行了调整,但事实证明,仅在此处选择“发布”并不会将项目置于发布模式。
谁会想到我还必须使用项目管理器面板并双击“发布”项才能将项目置于发布模式?
如果有人好奇的话,最终的 EXE 现在是 2,229 KB,仅是 Delphi 2010 之前的 EXE 大小的 5 倍。
只需将这些行放入您的 .dpr 文件中,即可将 exe 大小减少 20%
使用 Windows,
{$O+} {$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
好吧..有很多东西可以解释旧的delphi版本和新版本之间的区别..重要的是对unicode(D2009 .. DXE4)的支持,unicode中的所有字符都分配2个字节(在D1,D2,D3中,D7,...它们只分配一个字节)