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


Сериализация в MFC

В этой статье описывается механизм сериализации, предоставленных в библиотеки Microsoft Foundation Class (MFC) разрешила объекты для сохранения между при его выполнении программы.

Сериализация представляет собой процесс записи или чтения объект на или из постоянного носителя записи (дисковый файл. Сериализация идеальна для ситуаций, когда пожеланы, что поддерживает состояние структурных данных (например, классы структуры C или C++) во время или после выполнения программы. Использование объектов сериализации, предоставляемые MFC позволяет это, чтобы появиться в стандартном и согласованным образом, сбрасывая пользователя от необходимости выполнять операции с файлами вручную.

MFC предоставляет встроенную поддержку для сериализации в классе CObject. Таким образом, все классы, производные от CObject могут воспользоваться протокола сериализации CObject.

Основная мысль сериализации, объект должен записывать его текущее состояние, обычно показываемое значения его переменных-членов, в постоянное хранилище. В дальнейшем объект можно воссоздать, или десериализовать, прочитав состояние объекта из хранилища. Сериализация обрабатывает все сведения указателей объекта и циклических ссылок на объекты, которые используются при отдельной сериализации объекта. Узловой пункт, сам объект отвечает за чтения и записи состояния. Таким образом, для класса, который должен быть сериализуемым, он должен реализовать базовые операции сериализации. Как показано в группе в составе сериализации статьи, можно легко добавить этой функции в класс.

MFC использует объект класса CArchive как посредник между объектом, чтобы сериализовать и носителем записи. Этот объект всегда связан с объектом CFile, из которого он получает сведения, необходимые для сериализации, включая имя файла и ли запрошенная операция происходит чтение или запись. Объект, выполняющий операции сериализации может использовать объект CArchive вне зависимости от характеристик носителя записи.

Объект CArchive использует перегруженные операторы вставки (<<) и извлечения (>>) для выполнения операции записи и чтения. Дополнительные сведения см. в Храните и загрузки CObjects через архив в сериализации статьи: Сериализации объекта.

Примечание

Не путайте класс CArchive с общецелевыми iostream классами, которые только для форматирования текста.Класс CArchive для объектов сериализованных бинарный- форматом.

При необходимости можно сериализация MFC обхода для создания собственный механизм для постоянного хранения данных. Необходимо переопределить функции-члена класса, переданная сериализация в команде пользователя. См. описание в разделе Техническое примечание 22ID_FILE_OPEN, стандартных команд ID_FILE_SAVE и ID_FILE_SAVE_AS.

В следующих статьях охватывают 2 основной задачи, необходимые для сериализации.

Раздел Сериализация: Сериализация или ввода-вывода базы данных описывает при сериализации соответствующий метод ввода-вывода в приложениях баз данных.

См. также

Ссылки

Класс CArchive

Класс CObject

Класс CDocument

Класс CFile

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

Общие разделы по MFC

Другие ресурсы

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