Сериализация в MFC
Данный раздел описывает механизм сериализации, предоставляемых в библиотеки Microsoft Foundation Class (MFC) разрешила объекты для сохранения между запусками агента программы.
Сериализация - это процесс записи или чтения объект или из постоянного носителя записи в виде файла на диске.Сериализация идеально подходит для ситуаций, когда желательны, что поддерживает состояние структурированных данных (в виде классов или структур C++) во время или после выполнения программы.Использование объектов MFC позволяет сериализации, предоставленные для возникать в стандартном и последовательный способ, сбрасывая пользователя от необходимости выполнить операции файла вручную.
Поддержка MFC предоставляет встроенные для сериализации в классе CObject.Таким образом, все классы, производные от CObject могут воспользоваться преимуществами протокола сериализации entity_CODECObject.
Базовая мысль сериализации, что объект должен записать свое текущее состояние, как правило, показываемое значением его переменных-членов, в постоянном хранилище.В дальнейшем объект может быть создается повторно при чтении или десериализации состояние объекта из хранилища.Сериализация обрабатывает все данные указателей объекта и циклические ссылки на объекты, используемые при сериализации объекта.Узловой укажите, что сам объект отвечает за чтение и запись собственное состояние.Таким образом, для класса, который должен быть сериализуемым, он должен реализовать основные операции сериализации.Как показано в группе в составе сериализации статьи, легко добавить эти функциональные возможности к классу.
MFC использует объект класса CArchive как посредник между объектом для сериализации и носителем записи.Этот объект всегда связан с объектом CFile, из которого он получает необходимую информацию для сериализации, включая имя файла, а также чтении или записи, запрошенной операции.Объект, выполняющий операцию сериализации может использовать объект CArchive без учета особенностей носителя записи.
Объект CArchive использует перегруженную insert (<<) и операторы извлечения (>>) для операций чтения и записи.Дополнительные сведения см. в разделе И при загрузке CObjects в архив в сериализации статьи: сериализовать объект.
Примечание |
---|
Не путайте класс с классами CArchive общецелевыми iostream, для форматированного текста.Класс CArchive для объектов сериализованных бинарный-форматом. |
Если требуется, можно обойти сериализацию MFC для создания собственный механизм для постоянного хранилища данных.Необходимо переопределить член класса действуете, проведенная сериализация в команде пользователя.См. обсуждение в Техническая примечание 22 команд ID_FILE_OPEN, standard ID_FILE_SAVE и ID_FILE_SAVE_AS.
В следующих статьях охватывают 2 главной задачи, необходимые для сериализации.
Статья сериализация: Serialization vs. database input/output описывает, когда сериализация соответствующий метод ввода-вывода в приложениях базы данных.