delphi – 重新编译RTL – 如果可能的话呢?

前端之家收集整理的这篇文章主要介绍了delphi – 重新编译RTL – 如果可能的话呢?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个渴望做一些实验,修改Delphi运行时库(RTL),system.pas和喜欢的underbelly …有可能吗?

我非常喜欢像“是的,但你必须提供定制的.obj文件为一些汇编的魔法,因为他们从未分发与官方的Delphi源”的挑战。跟我很好,我只想知道。

我想用Delphi 7做这个实验,但是在任何其他版本的内部信息都很好。与石器时代以来一直与德尔福合作的公司是其中之一。

(我总是认为这是一个RTFM问题,答案是一个响亮的“不!”,但由于某些原因谷歌不会确认它。)

解决方法

您可以像任何其他单元一样重新编译RTL。

对于System.pas,您必须使用命令行编译器。

例如,这里是一个工作批处理文件内容(有一些没有很好记录的命令行开关):

del *.dcu /s
"c:\program files\borland\delphi7\bin\dcc32.exe" -O+ -Q -M -Y -Z -$D+ System.pas

这将重新编译System.pas和SysInit.pas(两个最低级RTL文件)。

但是为了使用您重新创建的dcu文件,您必须将包含更新的dcu文件文件夹放入IDE的第一个位置:例如,在Delphi 7中,它是Option / Environment Options / Library,然后将您的文件夹FIRST在“Libary路径”和“浏览路径”字段中。

这也许值得删除您的Delphi安装目录中的原始.dcu文件

但请确保您不会更改设备的“接口”部分,否则您将无法与其他未经修改的RTL(或第三方组件)进行编译。您可以更改“实现”部分,应用修复或重写某些部分的速度等,但不要更改“接口”部分以避免任何链接错误

始终备份您正在更改的原始.pas和.dcu文件。做一些自动编译测试是一个好主意,因此您可以确保对RTL的修改不会增加任何回归。

我们为Enhanced Run Time Library进行了这样的RTL重新编译,以提高低级RTL功能的速度(主要是System.pas和SysUtils.pas)。专为Delphi 7和2007设计。对于更新的Delphi版本,您仍然可以使用相同的原理。

原文链接:https://www.f2er.com/delphi/103423.html

猜你在找的Delphi相关文章