Serialisierung in MFC

In diesem Artikel wird der Serialisierungsmechanismus erläutert, der in der Microsoft Foundation Class-Bibliothek (MFC) bereitgestellt wird, damit Objekte zwischen den Ausführungen des Programms beibehalten werden können.

Serialisierung ist das Schreiben oder Lesen eines Objekts in ein oder aus einem persistenten Speichermedium, z. b. einer Datenträger Datei. Die Serialisierung eignet sich ideal für Situationen, in denen der Status strukturierter Daten (z. b. C++-Klassen oder-Strukturen) während oder nach der Ausführung eines Programms beibehalten werden soll. Durch die Verwendung der von MFC bereitgestellten Serialisierungsobjekte kann dies auf standardmäßige und konsistente Weise erfolgen, sodass der Benutzer nicht mehr in der Hand Dateien ausführen muss.

MFC bietet integrierte Unterstützung für die Serialisierung in der-Klasse CObject . Daher können alle von abgeleiteten Klassen CObject CObject das Serialisierungsprotokoll von nutzen.

Die grundlegende Idee der Serialisierung besteht darin, dass ein Objekt in der Lage sein sollte, seinen aktuellen Zustand (normalerweise durch den Wert seiner Element Variablen) in den persistenten Speicher zu schreiben. Später kann das Objekt neu erstellt werden, indem der Objektzustand aus dem Speicher gelesen oder deserialisiert wird. Die Serialisierung behandelt alle Details von Objekt Zeigern und Zirkel verweisen auf Objekte, die beim Serialisieren eines Objekts verwendet werden. Ein wichtiger Punkt ist, dass das Objekt selbst dafür verantwortlich ist, seinen eigenen Zustand zu lesen und zu schreiben. Damit eine Klasse serialisierbar ist, muss Sie daher die grundlegenden Serialisierungsvorgänge implementieren. Wie in der serialisierungsproppe von Artikeln gezeigt, ist es einfach, diese Funktionalität zu einer Klasse hinzuzufügen.

MFC verwendet ein Objekt der- CArchive Klasse als Vermittler zwischen dem Objekt, das serialisiert werden soll, und dem Speichermedium. Dieses Objekt ist immer einem- CFile Objekt zugeordnet, von dem die erforderlichen Informationen für die Serialisierung abgerufen werden, einschließlich des Datei namens und der Angabe, ob der angeforderte Vorgang ein Lese-oder Schreibvorgang ist. Das Objekt, das einen Serialisierungsvorgang ausführt, kann das CArchive Objekt ohne Berücksichtigung der Art des Speichermediums verwenden.

Ein CArchive -Objekt verwendet überladene Einfügevorgänge ( <<) and extraction (>> ), um Schreib-und Lesevorgänge auszuführen. Weitere Informationen finden Sie unter Speichern und Laden von CObjects über ein Archiv im Artikel Serialization: Serialisieren eines Objekts.

Hinweis

Verwechseln Sie die- CArchive Klasse nicht mit allgemeinen iostream-Klassen, die nur für formatierten Text dienen. Die- CArchive Klasse ist für serialisierte Objekte im Binärformat.

Wenn Sie möchten, können Sie die MFC-Serialisierung umgehen, um einen eigenen Mechanismus für die dauerhafte Speicherung von Daten zu erstellen. Sie müssen die Klassenmember-Funktionen überschreiben, die die Serialisierung mit dem Befehl des Benutzers initiieren. Informationen hierzu finden Sie in der technischen Notiz 22 der Befehle ID_FILE_OPEN, ID_FILE_SAVE und ID_FILE_SAVE_AS Standard.

In den folgenden Artikeln werden die beiden Hauptaufgaben behandelt, die für die Serialisierung erforderlich sind:

Der Artikel Serialisierung: Serialisierung und Database Input/Output beschreibt, wann die Serialisierung eine geeignete Eingabe-/ausgabetechnik in Datenbankanwendungen ist.

Siehe auch

Konzepte
Allgemeine MFC-Themen
CArchive-Klasse
CObject-Klasse
CDocument-Klasse
CFile-Klasse