0

如果您在其中设置断点System._StartExe并检查传入的 InitTable,您会注意到InitTable.UnitCount大于InitTable.TypeInfo.UnitCount. 不幸的是,这些记录都没有很好的记录。有谁知道这两个数字代表什么以及为什么它们不同?我假设 InitTable.UnitCount 是应用程序中的单元总数。但是另一个是什么?

4

1 回答 1

3

我相信
-PackageInfoTable.UnitCount计算存储在UnitInfo数组中的单位,其中每条记录都包含包的单位部分的初始化和完成代码指针。
-PackageInfoTable.TypeInfo.UnitCount连同 ...UnitNames引用包含一些TypeInfo存储在TypeTable(真实类型信息或单元边界标记)中的单元。

一个单元可以包含一些 Init/Finit 代码,但没有 TypeInfo 来收集和交互,因此区别......

仅供参考,查看MemCheck.pasprocedure ChangeFinalizationsOrder以了解他们如何破解 InitTable(直到 D2006)...

于 2010-08-06T01:28:06.980 回答