Udostępnij za pośrednictwem


Dwa sposoby tworzenia obiektu CArchive

Istnieją dwa sposoby tworzenia CArchive obiekt:

  • Niejawne utworzenie obiektu CArchive, za pośrednictwem RAM

  • Jawne utworzenie obiektu CArchive

Niejawne utworzenie obiektu CArchive, za pośrednictwem RAM

Najbardziej typowe i najłatwiejszym, sposób to let ramy tworzenia CArchive obiektu w dokumencie, w imieniu Zapisz, Zapisz jako i polecenia Otwórz w menu Plik.

Oto, co robi ramy, gdy użytkownik aplikacji wydaje polecenia Zapisz jako z menu Plik:

  1. Przedstawia Zapisać jako okno dialogowe i pobiera nazwę pliku przez użytkownika.

  2. Otwiera plik o nazwie przez użytkownika jako CFile obiektu.

  3. Tworzy CArchive obiekt, który wskazuje na to CFile obiektu.Tworzenie CArchive obiektów, w ramach Ustawia tryb "przechowywanie" (zapis, serializować), w przeciwieństwie do "load" (Odczyt, deserializacji).

  4. Wywołania Serialize funkcję zdefiniowaną w sieci CDocument-klasy, przekazując jej odwołanie do CArchive obiektu.

W dokumencie Serialize funkcja następnie zapisuje dane do CArchive obiektów, jak wyjaśniono krótko.Po powrocie z programu Serialize niszczy ramach funkcji, CArchive obiektu a CFile obiektu.

W ten sposób Jeśli let ramy tworzenia CArchive obiekt dokumentu, wszystkie wystarczy jest implementacja dokumentu Serialize funkcji, która zapisuje i odczytuje do i z archiwum.Również trzeba implementować Serialize dla każdego CObject-pochodzących z obiektów, dokument Serialize funkcji z kolei szereguje bezpośrednio lub pośrednio.

Jawne utworzenie obiektu CArchive

Oprócz szeregowania dokumentu za pośrednictwem RAM, są innych okazjach, gdy może być CArchive obiektu.Na przykład można szeregować danych do i ze Schowka, reprezentowane przez CSharedFile obiektu.Lub można użyć interfejsu użytkownika do zapisania pliku, który różni się od oferowanej przez ramy.W takim wypadku można jawnie utworzyć CArchive obiektu.W tym taki sam sposób, który jest w ramach, wykonaj poniższą procedurę.

Aby jawnie utworzyć obiektu CArchive

  1. Konstruowanie CFile lub obiektu pochodną CFile.

  2. Przekazać CFile obiektu do konstruktora dla CArchive, jak pokazano w następującym przykładzie:

    CFile theFile;
    theFile.Open(_T("CArchive__Test.txt"), CFile::modeCreate | CFile::modeWrite);
    CArchive archive(&theFile, CArchive::store);
    

    Drugi argument CArchive konstruktora jest wartością, która określa, czy archiwum będą używane do przechowywania lub ładowania danych do lub z pliku.Serialize Funkcji obiekt sprawdza ten stan przez wywołanie IsStoring funkcji dla obiektu archiwum.

Po zakończeniu przechowywania lub ładowania danych do lub z CArchive obiektów, zamknij go.Chociaż CArchive (i CFile) obiektów automatycznie zamknie archiwum (i pliku), dobrą praktyką jest jawnie zrobić, ponieważ pozwala odzyskiwania od błędów.Aby uzyskać więcej informacji na temat obsługi błędów, zobacz artykuł wyjątki: połowu i usuwanie wyjątki.

Aby zamknąć obiekt CArchive

  • Poniższy przykład ilustruje sposób zamknięcia CArchive obiekt:

    archive.Close();
    theFile.Close();
    

Zobacz też

Koncepcje

Szeregowanie: Szeregowania obiektu