Due modi per creare un oggetto di CArchive
Esistono due modi per creare un oggetto di CArchive :
Creazione implicita di un oggetto di CArchive tramite il framework
Creazione esplicita di un oggetto di CArchive
Creazione implicita di un oggetto di CArchive tramite Framework
La più comune e il più semplice, modalità è consigliabile lasciare che il framework creare un oggetto di CArchive per il documento per conto di salvataggio, salvare e aprire i comandi del menu File.
Ecco vengono utilizzate dal framework quando l'utente dell'applicazione pubblica il comando dal menu File:
Verifica la finestra di dialogo Salva con nome e ottiene il nome file dall'utente.
Aprire il file denominato dall'utente come oggetto di CFile .
Crea un oggetto di CArchive che punta a questo CFile oggetto.Quando si crea l'oggetto di CArchive , il framework imposta la modalità “per archiviare„ (scrivere, serializzare), anziché “al caricamento„ (read, deserializzarlo).
Chiama la funzione di Serialize definita nel CDocumentclasse derivata da, passando un riferimento a un oggetto di CArchive .
La funzione di Serialize del documento quindi scrive i dati all'oggetto di CArchive , come spiegato precedentemente.Da restituire dalla funzione di Serialize , il framework elimina l'oggetto di CArchive quindi l'oggetto di CFile .
Pertanto, se si lascia il framework per creare l'oggetto di CArchive per il documento, è importante compiere consiste nell'implementazione della funzione di Serialize di documento che scrive e letto da e verso l'archivio.È inoltre necessario implementare Serialize per qualsiasi CObjectdi oggetti derivati dalla funzione di Serialize del documento a sua volta serializza direttamente o indirettamente.
Creazione esplicita di un oggetto di CArchive
Oltre alla serializzazione di un documento tramite il framework, esistono altre occasioni quando è possibile richiedere un oggetto di CArchive .Ad esempio, potrebbe essere necessario serializzare i dati da e dagli Appunti, rappresentati da un oggetto di CSharedFile .In alternativa, è possibile decidere di utilizzare un'interfaccia utente per salvare un file diverso da quello offerto dal framework.In questo caso, è possibile creare esplicitamente un oggetto di CArchive .Questa operazione nello stesso modo che il framework è, utilizzando la procedura riportata di seguito.
Per creare esplicitamente un oggetto di CArchive
Costruire un oggetto di CFile o un oggetto derivato da CFile.
Passare l'oggetto di 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 costruttore di CArchive è un valore enumerato di che specifica se l'archivio verrà utilizzato per archiviare o il caricamento dei dati o dal file.La funzione di Serialize di un oggetto controlla questo stato chiamando la funzione di IsStoring per l'oggetto dell'archivio.
Quando si archiviano completato o caricando i dati a CArchive oggetto, chiuderlo.Sebbene gli oggetti CFilee ( CArchive ) automaticamente chiudano l'archivio (e file), è consigliabile identificare in modo esplicito agisce in modo da rendere il recupero dagli errori più semplice.Per ulteriori informazioni sulla gestione degli errori, vedere l'articolo eccezioni: Rilevazione e l'eliminazione delle eccezioni.
Per chiudere l'oggetto di CArchive
Nell'esempio seguente viene illustrato come terminare l'oggetto di CArchive :
archive.Close(); theFile.Close();