Поделиться через


Службы модели объекта во время выполнения

Классы CObject и CRuntimeClass инкапсулируют несколько служб объекта, включая доступ к данным, сериализации и динамическому созданию объектов класса среды выполнения. Все классы, производные от CObject наследуют эту функцию.

Доступ к сведениям о класса среды выполнения позволяет указать сведения о классе объекта во время выполнения. Возможность определить класс объекта во время выполнения полезна, когда требуется дополнительная проверка типов аргументов функции и когда необходимо написать код одноцелевой на основе класса объекта. Данные класса среды выполнения не поддерживаются непосредственно в языке C C++.

Сериализация представляет собой процесс записи или чтения содержимое объекта на или из файла. Использование сериализации для сохранения содержимое объекта даже после приложение не влияет. Объект затем можно считать из файла при перезапуске приложения. Считается, что будут такие объекты данных «постоянными.»

Динамическое создание объектов позволяет создать объект указанного класса во время выполнения. Например, документ, представление и объекты кадра должны поддерживать динамическое создание, поскольку платформе для их создания динамически.

В следующей таблице перечислены макросов MFC, которые поддерживают данные класса среды выполнения, сериализацию и динамическое создание.

Дополнительные сведения об этих служб и сериализации объекта среды см. в статье Класс CObject: Доступ к данным класса среды выполнения.

Макросы служб объектной модели среды выполнения

DECLARE_DYNAMIC

Обеспечивает доступ к данным класса среды выполнения (не используется в объявлении класса).

DECLARE_DYNCREATE

Включает создание динамических и доступ к сведениям о класса среды выполнения (не используется в объявлении класса).

DECLARE_SERIAL

Включает сериализации и доступ к сведениям о класса среды выполнения (не используется в объявлении класса).

IMPLEMENT_DYNAMIC

Обеспечивает доступ к данным класса среды выполнения (не используется в реализации класса).

IMPLEMENT_DYNCREATE

Включает создание динамических и доступ к сведениям о среде выполнения (не используется в реализации класса).

IMPLEMENT_SERIAL

Позволяет сериализацию и доступ к сведениям о класса среды выполнения (не используется в реализации класса).

RUNTIME_CLASS

Возвращает структуру CRuntimeClass, соответствующую именованному класс.

OLE часто требуется динамического создания объектов во время выполнения. Например, приложение должно быть способно OLE-сервера создать элемент OLE динамически в ответ на запрос от клиента. Аналогично, сервер автоматизации должен иметь возможность создания элементов в ответ на запросы от клиентов автоматизации.

Библиотеки Microsoft Foundation Class содержит 2 макроса определенного OLE.

Динамическое создание объектов OLE

DECLARE_OLECREATE

Позволяет не созданные через объекты ole-автоматизации.

IMPLEMENT_OLECREATE

Делает объекты не созданные системой OLE.

См. также

Основные понятия

Макросы и глобальные объекты MFC