Zwei Möglichkeiten, ein CArchive-Objekt zu erstellen
Es gibt zwei Möglichkeiten, ein CArchive-Objekt zu erstellen:
Implizite Erstellung eines CArchive-Objekts über das Framework
Die explizite Erstellung eines CArchive-Objekts
Implizite Erstellung eines CArchive-Objekts über das Framework
Die meisten Common und das einfachste Methode ist, CArchive-Objekt, das ein Framework für das Dokument im Namen der Speichern, Speichern, wie erstellen und Befehle im Menü Datei geöffnet werden soll.
Hier sehen Sie, welche Aufgaben das Framework ausführt, wenn der Benutzer der Anwendungsprobleme der Befehl Speichern unter im Menü Datei:
Stellt das Dialogfeld Speichern unter dar und ruft den Dateinamen vom Benutzer ab.
Öffnet die Datei, die vom Benutzer als CFile-Objekt benannt ist.
Erstellt ein CArchive-Objekt, das diesem CFile-Objekt zeigt.Wenn das CArchive-Objekt erstellt, das Framework legt den Modus fest, schreiben (serialisiert), im Gegensatz zu "Last" Lesen" ("zu speichern, deserialisiert).
Nennt die Serialize-Funktion definiert im CDocument- Die abgeleitete Klasse, wobei es sich um einen Verweis auf das CArchive-Objekt.
Serialize-Funktion des Dokuments schreibt dann die Daten in den CArchive-Objekt, z. B. in Kürze erläutert.Nach der Rückgabe von der Serialize-Funktion zerstört das Framework das CArchive-Objekt und dann das CFile-Objekt.
Wenn Sie das Framework das CArchive-Objekt für das Dokument erstellen können, ist alles, müssen Sie die Serialize-Funktion des Dokuments zu implementieren, die in und aus dem Archiv geschrieben und gelesen wird.Sie müssen Serialize für jedes CObject abgeleitete Objekte ebenfalls implementieren, dass die Serialize-Funktion des Dokuments wiederum direkt oder indirekt serialisiert.
Die explizite Erstellung eines CArchive-Objekts
Neben dem Serialisieren eines Dokuments über das Framework gibt es weitere Möglichkeiten, wenn Sie ein CArchive-Objekt benötigen.Sie können beispielsweise Daten in und aus der Zwischenablage serialisieren, dargestellt durch ein CSharedFile-Objekt.Oder Sie können eine Benutzeroberfläche zum Speichern einer Datei verwenden, die der unterscheidet, die vom Framework bereitgestellt wird.In diesem Fall können Sie ein CArchive-Objekt explizit erstellen.Hierzu wird auf die gleiche Weise, die das Framework mithilfe der folgenden Prozedur.
So fügen Sie ein CArchive-Objekt explizit erstellen
Erstellen Sie ein CFile-Objekt oder ein Objekt, das von CFile abgeleitet sind.
Führen Sie das CFile-Objekt an den Konstruktor für CArchive, wie im folgenden Beispiel gezeigt:
CFile theFile; theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite); CArchive archive(&theFile, CArchive::store);
Das zweite Argument des CArchive-Konstruktor ist ein Enumerationswert, der angibt, ob das Archiv zum Speichern oder Laden von Daten in einen oder aus der Datei verwendet wird.Die Serialize-Funktion eines Objekts überprüft diesen Zustand, indem sie die IsStoring-Funktion zum Archiv Objekts aufruft.
Wenn die Speichern oder Laden von Daten in den oder aus dem CArchive-Objekt sind, schließen Sie sie.Obwohl die Objekte CArchive (und CFile) automatisch das Archiv (Datei), und schließen zu, empfiehlt es sich, da es wird ausdrücklich Wiederherstellung von Fehlern einfacher macht.Weitere Informationen zur Fehlerbehandlung finden Sie im Artikel Ausnahmen: Ausnahmen abfangen und Löschen.
So schließen CArchive-Objekt
Im folgenden Beispiel wird veranschaulicht, wie das CArchive-Objekt schließt:
archive.Close(); theFile.Close();