目前,Delphi XE 仅在我的机器上可用,我不知道 Delphi 2010/XE2 是否引入了一些重大更改。
请帮我更新以下定义:
TVmt = packed record
SelfPtr : TClass;
IntfTable : Pointer;
AutoTable : Pointer;
InitTable : PFieldTable;
TypeInfo : PTypeInfo;
FieldTable : Pointer;
MethodTable : Pointer;
DynamicTable : Pointer;
ClassName : PShortString;
InstanceSize : Cardinal;
Parent : PClass;
{$IFDEF DELPHI2009_UP}
Equals : Pointer;
GetHashCode : Pointer;
ToString : Pointer;
{$ENDIF}
{$IFDEF DELPHIXE_UP}
// ???
{$ENDIF}
{$IFDEF DELPHIXE2_UP}
// ???
{$ENDIF}
SafeCallException : PSafeCallException;
AfterConstruction : PAfterConstruction;
BeforeDestruction : PBeforeDestruction;
Dispatch : PDispatch;
DefaultHandler : PDefaultHandler;
NewInstance : PNewInstance;
FreeInstance : PFreeInstance;
Destroy : PDestroy;
{UserDefinedVirtuals: array of procedure;}
end;
提前致谢。
我需要的信息可以从单位system.pas中获取。当我将其作为 Delphi XE 版本进行检查时,我还发现 VMT 依赖于 CPU(归咎于我,很明显/搜索{$IF defined(CPUX64)}
指令以获取更多详细信息)。
我对 32 位 Windows 平台感兴趣。