Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> Информация о типе времени выполнения (RTTI). >> Структура, описывающая формат RTTI
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Структура, описывающая формат RTTI


Приведем структуру, описывающую формат RTTI:

pRTTI = ^RTTI;
RTTI = record
vtTypeInfo : Word; ═══{ короткий указатель на дополнительную
════════════════════════информацию о классе }
vtFieldTable: Word; ══{ короткий указатель на таблицу
════════════════════════с информацией о полях класса }
vtMethodTable : Word; { короткий указатель на таблицу
════════════════════════с информацией о методах класса}
vtDynamicTable: Word; { короткий указатель на таблицу
════════════════════════динамических методов }
vtClassName: Word; ═══{ короткий указатель на строку с именем класса } vtInstSize: Word; ════{ размер экземпляра класса }
vtParent: Pointer; ═══{ указатель на класс-предок }
vtDefault: Pointеr; ══{ указатель на метод-обработчик сообщений Windows } vtNewInst: Pointer; ══{ указатель на метод, создающий новый
════════════════════════экземпляр класса }
vtFreeInst: Pointer; ═{ указатель на метод, уничтожающий
════════════════════════экземпляр класса }
vtDestroy : Pointer; ═{ указатель на деструктор }
end;

Понятия "короткий указатель" в Object Pascal нет; здесь имеется в виду, что первые пять элементов RTTI должны находиться в одном сегменте с ней, поэтому приводятся только их смещения. Кстати, именно этот факт наводит на размышления о том, что в 32-разрядной версии формат RTTI будет видоизменен. Не следует забывать, что он не документирован фирмой Borland и здесь приводится для лучшего понимания внутренних механизмов классов.

Информация в RTTI "живет самостоятельной жизнью" и может использоваться без создания экземпляров объектов.



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017