ブレークポイントを設定してSystem._StartExe
、渡された InitTable を調べると、InitTable.UnitCount
より大きいことがわかりますInitTable.TypeInfo.UnitCount
。残念ながら、これらの記録はどちらも十分に文書化されていません。この 2 つの数字が何を表しているのか、なぜ違うのか、誰か知っていますか? InitTable.UnitCount は、アプリケーション内のユニットの総数であると想定しています。しかし、もう1つは何ですか?
1 に答える
3
-は、配列に格納されているユニットをPackageInfoTable.UnitCount
カウントしますUnitInfo
。各レコードには、パッケージのユニット部分の初期化および終了コード ポインターが保持されます。
-PackageInfoTable.TypeInfo.UnitCount
とともに ... (実際のタイプ情報またはユニット境界マーカー) に保存されているUnitNames
一部を含むユニットを参照します。TypeInfo
TypeTable
ユニットには、いくつかの Init/Finit コードを含めることができますが、収集するための TypeInfo はなく、相互に、したがって違い...
procedure ChangeFinalizationsOrder
参考までに、MemCheck.pasを見て、InitTableをハッキングする方法を確認してください (D2006 まで)...
于 2010-08-06T01:28:06.980 に答える