是否可以在Delphi Rio(10.3.3)中修改System.Classes.pas

是否可以在Delphi Rio(10.3.3)中修改System.Classes.pas,delphi,delphi-10.3-rio,Delphi,Delphi 10.3 Rio,我正在将一个项目从Delphi XE3升级到Delphi Rio 10.3.3。该项目包含许多对VCL和RTL单元的修复,通过将单元从Delphi安装复制到项目内的路径并应用修改来实现。只要在单元中指定了正确的编译器选项,这似乎仍然有效,但这似乎不适用于System.Classes.pas,从而导致了臭名昭著的错误: F2051单元AAA使用不同版本的BBB进行编译 是否有人能够为Delphi Rio修改System.Classes.pas,如果有,您使用了哪些编译器开关?我从这个答案中注意到:

我正在将一个项目从Delphi XE3升级到Delphi Rio 10.3.3。该项目包含许多对VCL和RTL单元的修复,通过将单元从Delphi安装复制到项目内的路径并应用修改来实现。只要在单元中指定了正确的编译器选项,这似乎仍然有效,但这似乎不适用于System.Classes.pas,从而导致了臭名昭著的错误:

F2051单元AAA使用不同版本的BBB进行编译


是否有人能够为Delphi Rio修改System.Classes.pas,如果有,您使用了哪些编译器开关?我从这个答案中注意到:这在XE6中被打破,但在XE7中再次起作用。

您到底在做什么修改?您应该能够随意修改单元的
实现
,而不考虑编译器标志。但决不要修改装置的
界面
。这会导致版本控制问题。唯一需要特殊标志的单元是
系统
单元。@RemyLebeau在Classes.pas的情况下,我们在接口部分为其中一个流类声明了一个类帮助器,并在实现部分声明了一些小的更改。如果我删除接口部分中的更改,它仍然无法编译,并出现相同的错误。接口部分中的更改似乎适用于其他单元,但这可能会导致我不知道的问题。@Tony好吧,因为类助手修改了单元接口,所以您不能这样做。…。@R.Hoek该问题似乎与所做的更改无关,您可以将Classes.pas的一个干净副本放到一个新项目中,它将不会生成。这可能是不可能的,在力拓,在这种情况下,我将不得不改变我们的修改。很明显,类帮助器可以在它自己的单元中。@Tony,当向项目中添加RTL/VCL/FMX单元以进行修改时,您永远不能修改
接口
节-句点。这是不允许的。只能修改
实现
Classes.pas不应该有问题,因此如果编译器不接受它,那很可能是需要报告的回归错误。或者Embarcadero在最近的版本中增加了新的需求,而这些版本目前还不为人所知。谁知道呢。这就是说,没有必要在Embarcadero的单位中添加职业助手,它们属于你自己的单位。