加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:16:37 所属栏目:大数据 来源:网络整理
导读:我有这个渴望做一些实验,修改Delphi运行时库(RTL),system.pas和喜欢的underbelly …有可能吗? 我非常喜欢像“是的,但你必须提供定制的.obj文件为一些汇编的魔法,因为他们从未分发与官方的Delphi源”的挑战。跟我很好,我只想知道。 我想用Delphi 7做这
我有这个渴望做一些实验,修改Delphi运行时库(RTL),system.pas和喜欢的underbelly …有可能吗?

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

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

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

解决方法

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

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

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

del *.dcu /s
"c:program filesborlanddelphi7bindcc32.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版本,您仍然可以使用相同的原理。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读