Due modi per creare un oggetto CArchive

Esistono due modi per creare un CArchive oggetto:

Creazione implicita di un oggetto CArchive tramite il framework

Il modo più comune e più semplice consiste nel consentire al framework di creare un CArchive oggetto per il documento per conto dei comandi Salva, Salva con nome e Apri dal menu File.

Ecco cosa fa il framework quando l'utente dell'applicazione rilascia il comando Salva con nome dal menu File:

  1. Visualizza la finestra di dialogo Salva con nome e ottiene il nome file dall'utente.

  2. Apre il file denominato dall'utente come CFile oggetto .

  3. Crea un CArchive oggetto che punta a questo CFile oggetto. Nella creazione dell'oggetto CArchive , il framework imposta la modalità su "store" (scrittura, serializzazione), anziché su "load" (lettura, deserializzazione).

  4. Chiama la Serialize funzione definita nella CDocumentclasse derivata da , passando un riferimento all'oggetto CArchive .

La funzione del Serialize documento scrive quindi i dati nell'oggetto CArchive , come spiegato a breve. Al ritorno dalla Serialize funzione, il framework elimina definitivamente l'oggetto CArchive e quindi l'oggetto CFile .

Pertanto, se si consente al framework di creare l'oggetto CArchive per il documento, è necessario implementare la funzione del Serialize documento che scrive e legge da e verso l'archivio. È inoltre necessario implementare Serialize per qualsiasi CObjectoggetto derivato da che la funzione del Serialize documento serializza direttamente o indirettamente.

Creazione esplicita di un oggetto CArchive

Oltre a serializzare un documento tramite il framework, esistono altre occasioni in cui potrebbe essere necessario un CArchive oggetto . Ad esempio, è possibile serializzare i dati da e verso gli Appunti, rappresentati da un CSharedFile oggetto . In alternativa, è possibile usare un'interfaccia utente per salvare un file diverso da quello offerto dal framework. In questo caso, è possibile creare in modo esplicito un CArchive oggetto . Si esegue questa operazione allo stesso modo del framework, usando la procedura seguente.

Per creare in modo esplicito un oggetto CArchive

  1. Costruire un CFile oggetto o un oggetto derivato da CFile.

  2. Passare l'oggetto CFile al costruttore per CArchive, come illustrato nell'esempio seguente:

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

    Il secondo argomento del CArchive costruttore è un valore enumerato che specifica se l'archivio verrà utilizzato per l'archiviazione o il caricamento di dati da o verso il file. La Serialize funzione di un oggetto controlla questo stato chiamando la IsStoring funzione per l'oggetto archivio.

Al termine dell'archiviazione o del caricamento dei dati da o verso l'oggetto CArchive , chiuderli. Anche se gli CArchive oggetti (e CFile) chiuderanno automaticamente l'archivio (e il file), è consigliabile farlo in modo esplicito perché rende più semplice il ripristino dagli errori. Per altre informazioni sulla gestione degli errori, vedere l'articolo Eccezioni: Rilevamento ed eliminazione di eccezioni.

Per chiudere l'oggetto CArchive

  1. Nell'esempio seguente viene illustrato come chiudere l'oggetto CArchive :

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

Vedi anche

Serializzazione: serializzazione di un oggetto