Zwei Möglichkeiten zur Erstellung eines CArchive-Objekts
Es gibt zwei Möglichkeiten, ein CArchive-Objekt zu erstellen:
Implizite Erstellung eines CArchive-Objekts zum Framework
Explizite Erstellung eines CArchive-Objekts
Implizite Erstellung eines CArchive-Objekts zum Framework
Die am häufigsten verwendete und einfachste Methode, das ist, dem Framework ein CArchive-Objekt für das Dokument der im Namen speichern, speichern erstellen, z und Befehle im Menü Datei öffnen zu können.
Dies ist, was das Framework zur Verfügung, sofern der Benutzer der Anwendung der Befehl Speichern unter der Menü ausgibt:
Stellt das Dialogfeld Speichern unter dar und ruft den Dateinamen vom Benutzer ab.
Öffnet die Datei, die vom Benutzer als CFile-Objekt befindet.
Erstellt ein CArchive-Objekt, das auf diesem CFile-Objekt. Wenn das CArchive-Objekt erstellt, wird das Framework den Modus auf "Speicher" (schreiben, serialisieren Sie), im Gegensatz zum "Last" fest (Lesen, deserialisiert).
Ruft die Serialize-Funktion definiert im CDocument abgeleitete Klasse auf und übergibt ein Verweis auf das CArchive-Objekt.
Serialize-Funktion des Dokuments schreibt Daten dem Objekt CArchive, wie weiter unten erläutert. Nach Rückgabe von der Funktion Serialize, zerstört das Framework CArchive-Objekt und dann das CFile-Objekt.
Wenn Sie das Framework CArchive-Objekt für das Dokument erstellt haben, ist alles, das Sie ausführen müssen, die Serialize, Funktion des Dokuments zu implementieren, die in und aus dem Archiv schreibt und liest. Sie müssen Serialize für jedes von CObject abgeleitete Objekte ebenfalls implementieren, dass die Serialize-Funktion des Dokuments wiederum direkt oder indirekt serialisiert.
Explizite Erstellung eines CArchive-Objekts
Neben Serialisieren eines Dokuments zu Framework, gibt es weitere Möglichkeiten, wenn Sie ein CArchive-Objekt erfordern. Beispielsweise können Sie Daten zu und von der Zwischenablage serialisieren, dargestellt durch ein CSharedFile-Objekt. Oder, sollten Sie eine Benutzeroberfläche zum Speichern einer Datei verwenden, die von der Zeichenfolge unterscheiden ist, die vom Framework bereitgestellt wird. In diesem Fall können Sie ein CArchive-Objekt explizit erstellen. Hierzu dieselbe Methode, die das Framework durchführt, mithilfe der folgenden Prozedur.
Um ein CArchive-Objekt explizit erstellen
Erstellen Sie ein CFile-Objekt oder ein Objekt, die von CFile abgeleitet werden.
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 CArchive zum Konstruktor ist ein Enumerationswert, der angibt, ob das Archiv für das Speichern oder Laden von Daten in oder aus der Datei verwendet wird. Die Serialize-Funktion eines Objekts überprüft diesen Zustand, indem die Funktion IsStoring für das Archivobjekt aufruft.
Wenn Sie der Speichern sind, oder, Daten nach oder CArchive lädt, welches Objekt Sie, schließen Sie es. Obwohl die Objekte CArchive (und CFile) automatisch das Archiv (Datei) und schließen, sollten Sie sich explizit dies jetzt, da Wiederherstellung von Fehlern erleichtert wird. Informationen über die Fehlerbehandlung, finden Sie im Artikel Ausnahmen: Ausnahmen abfangen und Löschen.
Um das CArchive-Objekt schließen
Das folgende Beispiel veranschaulicht, wie das CArchive-Objekt enthält:
archive.Close(); theFile.Close();