Udostępnij za pośrednictwem


Dwa sposoby tworzenia obiektu CArchive

Istnieją dwa sposoby tworzenia CArchive obiekt:

  • Niejawna utworzenia obiektu CArchive za pośrednictwem ramach

  • Poprzez ich jawne utworzenie obiektu CArchive

Niejawna utworzenia obiektu CArchive za pośrednictwem ramach

Najbardziej powszechnym i najłatwiejszym, sposobem jest umożliwienie ramy tworzenia CArchive obiektu dokumentu imieniu Zapisz, Zapisz jako, a polecenia Otwórz z menu Plik.

Oto, co ramach nie rozchodów użytkownika aplikacji polecenia Zapisz jako z menu Plik:

  1. Przedstawia Zapisz 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.W tworzeniu CArchive obiektu, w ramach Ustawia tryb "przechowywanie" (zapis, serializować), a nie "load" (Odczyt, deserializacji).

  4. Wywołania Serialize funkcja zdefiniowana w swojej CDocument-klasy, przekazując jej odwołanie do CArchive obiektu.

W dokumencie Serialize funkcja następnie zapisuje dane do CArchive obiektu, jak zostało to wyjaśnione wkrótce.Po powrocie z sieci Serialize niszczy ramach funkcji, CArchive obiekt a następnie CFile obiektu.

Tak więc Jeśli pozwolisz ramy tworzenia CArchive obiekt dokumentu, wszystko, co musisz zrobić jest implementacja tego dokumentu Serialize funkcja, która zapisuje i odczytuje do i z archiwum.Trzeba także zaimplementować Serialize dla każdego CObject-pochodnych obiekty które dokumentu Serialize funkcji z kolei szereguje bezpośrednio lub pośrednio.

Poprzez ich jawne utworzenie obiektu CArchive

Oprócz szeregowania dokumentu poprzez ramach, istnieje innych okazjach, kiedy może być konieczne CArchive obiektu.Na przykład, możesz chcieć serializować danych do i ze Schowka, reprezentowana przez CSharedFile obiektu.Czy chcesz używać interfejsu użytkownika do zapisywania pliku, który różni się od oferowanej przez architekturę.W takim wypadku można jawnie utworzyć CArchive obiektu.Można to zrobić w taki sam sposób tak się ramowego, korzystając z następującej procedury.

Aby jawnie utworzyć obiekt CArchive

  1. Budowy CFile lub obiektu pochodzące z 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 Konstruktor jest wartością wyliczoną, która określa, czy archiwum będą używane do przechowywania lub ładowania danych do lub z pliku.Serialize Funkcja obiektu sprawdza ten stan przez wywołanie IsStoring funkcja dla obiektu archiwum.

Po zakończeniu, przechowywanie i ładowanie danych do lub z CArchive obiektów, zamknij go.Chociaż CArchive (i CFile) obiektów zostały automatycznie zamknięte archiwum (i pliku), dobrą praktyką jest jawne żądanie, ponieważ ułatwia przed błędami.Aby uzyskać więcej informacji na temat obsługi błędów, zobacz artykuł wyjątki: wyjątków połowu i usuwania.

Aby zamknąć obiekt CArchive

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

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

Zobacz też

Koncepcje

Serializacja: serializacja obiektu