Sdílet prostřednictvím


Dva způsoby vytvoření objektu CArchive

Existují dva způsoby vytvoření CArchive objekt:

  • Implicitní vytvoření objektu CArchive prostřednictvím rozhraní

  • Explicitní vytvoření objektu CArchive

Implicitní vytvoření objektu CArchive prostřednictvím rozhraní

Nejvíce společné a nejsnadnější, způsob je umožnit vytvoření rámce CArchive objektu dokumentu jménem uložit, uložit jako a příkazy v nabídce soubor otevřít.

Zde je co rámci provádí, pokud uživatel aplikace vydá příkaz Uložit jako z nabídky soubor:

  1. Představuje Uložit jako dialogové okno a obdrží od uživatele název souboru.

  2. Otevře soubor s názvem jako uživatel CFile objektu.

  3. Vytvoří CArchive objekt, který odkazuje na tento CFile objektu.Při vytváření CArchive objektu rámci nastaví režim "uložit" (zápis, serializovat), jako protiklad k "zatížení" (čtení, rekonstruovat).

  4. Volání Serialize funkce definovaná v vaše CDocument-odvozené třídy procházející je odkaz na CArchive objektu.

Do dokumentu Serialize funkce pak zapisuje data CArchive objektu, jak je vysvětleno v krátké době.Po návratu z vašeho Serialize ničí rámci funkce, CArchive objekt a potom CFile objektu.

Proto pokud umožňují vytvoření rámce CArchive objektu dokumentu, je všechny stačí provádět dokumentu Serialize funkci, která zapisuje a čte z archivu a.Máte také implementovat Serialize pro všechny CObject-odvozené objekty, dokumentu Serialize funkce zase řadí přímo nebo nepřímo.

Explicitní vytvoření objektu CArchive

Kromě serializace dokumentu prostřednictvím rozhraní jsou příležitostech, kdy je nutné CArchive objektu.Chcete-li například serializaci dat ze schránky, reprezentované a CSharedFile objektu.Nebo chcete použít pro uložení souboru, který je jiný než nabízené v rámci uživatelského rozhraní.V takovém případě můžete explicitně vytvořit CArchive objektu.To lze provést stejným způsobem, který nemá rámci, pomocí následujícího postupu.

Explicitně vytvořit objekt CArchive

  1. Konstrukce CFile nebo objektu odvozené z CFile.

  2. Předat CFile objekt konstruktor pro CArchive, jak ukazuje následující příklad:

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

    Druhý argument CArchive konstruktor je výčtová hodnota, která určuje, zda budou použity pro uložení nebo načtení dat nebo ze souboru archivu.Serialize Funkce objektu zkontroluje tento stav voláním IsStoring funkci pro objekt archivu.

Po uložení nebo načtení dat do nebo z CArchive objekt, zavřete jej.Přestože CArchive (a CFile) objekty automaticky zavře archivu (a soubor), je vhodné výslovně tak učinit, protože ji usnadňuje zotavení z chyb.Další informace o zpracování chyb najdete v článku výjimky: výjimky odlovy a odstraňování.

Zavřete objekt CArchive

  • Následující příklad ukazuje, jak zavřít CArchive objekt:

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

Viz také

Koncepty

Serializace: Serializaci objektu