0

ブレークポイントを設定してSystem._StartExe、渡された InitTable を調べると、InitTable.UnitCountより大きいことがわかりますInitTable.TypeInfo.UnitCount。残念ながら、これらの記録はどちらも十分に文書化されていません。この 2 つの数字が何を表しているのか、なぜ違うのか、誰か知っていますか? InitTable.UnitCount は、アプリケーション内のユニットの総数であると想定しています。しかし、もう1つは何ですか?

4

1 に答える 1

3


-は、配列に格納されているユニットをPackageInfoTable.UnitCountカウントしますUnitInfo。各レコードには、パッケージのユニット部分の初期化および終了コード ポインターが保持されます。
-PackageInfoTable.TypeInfo.UnitCountとともに ... (実際のタイプ情報またはユニット境界マーカー) に保存されているUnitNames一部を含むユニットを参照します。TypeInfoTypeTable

ユニットには、いくつかの Init/Finit コードを含めることができますが、収集するための TypeInfo はなく、相互に、したがって違い...

procedure ChangeFinalizationsOrder参考までに、MemCheck.pasを見て、InitTableをハッキングする方法を確認してください (D2006 まで)...

于 2010-08-06T01:28:06.980 に答える