Подписи виртуальных методов TObject для обновления до Delphi XE2

В настоящее время 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 зависят от процессора (вините меня, это очевидно / ищите {$IF defined(CPUX64)} директива для более подробной информации).

Я заинтересован в 32-битной платформе Windows.

1 ответ

Решение

Краткий обзор XE2 System.pas не показывает никаких различий в порядке и содержании VMT. Там есть {$IFDEF CPUX64} для разных смещений для vmt* значения, но порядок и типы кажутся одинаковыми. Определенно нет ничего нового в областях, которые вы отметили???

Другие вопросы по тегам