他のユニットと同様に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、あなたのフォルダーを「迂回路」と「迂回路」の両方の欄に入れてください。
おそらく、Delphiのインストールディレクトリにある元の.dcuファイルを削除する価値があります。
ただし、ユニットの「インターフェース」部分を変更しないでください。そうでないと、RTL(または他社製のコンポーネント)の他の変更されていないユニットでコンパイルする際に問題が発生します。 「実装」の部分を変更したり、修正を適用したり、速度などのために一部を書き直したりすることはできますが、リンクエラーを避けるために「インターフェース」部分を変更しないでください。
変更している元の.pasファイルと.dcuファイルを必ずバックアップしてください。 RTLの変更によって回帰が追加されないように、自動コンパイルテストを行うことをお勧めします。
低レベルのRTL機能(主にSystem.pasとSysUtils.pas)の処理速度を向上させるために、Enhanced Run Time Libraryに対してこのようなRTL再コンパイルを行いました。 Delphi 7および2007用に設計されています。最新のDelphiバージョンでも、同じ原則を使用できます。
ハード・エクスペリエンスによってバックアップされた明確な帳簿をありがとう。優れた! –