Due modi per creare un oggetto CArchive
Esistono due modi per creare un oggetto di CArchive :
Creazione implicita di un oggetto CArchive tramite il framework
Creazione esplicita di un oggetto CArchive
Creazione implicita di un oggetto 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 salva, salva e aprire i comandi del menu File.
Ecco cosa il framework è quando l'utente dell'applicazione pubblica comando salva con nome dal menu File:
Verifica la finestra di dialogo Salva come e ottiene il nome del file dall'utente.
Aprire il file denominato dall'utente come oggetto di CFile.
Crea un oggetto di CArchive che punti a questo CFile oggetto. Quando si crea l'oggetto di CArchive, il framework imposta la modalità "in" (write, serializzare), anziché "al caricamento" (read, deserializzarlo).
Chiama la funzione di Serialize definita nel CDocument- classe derivata, passando un riferimento all'oggetto di CArchive.
La funzione di Serialize del documento quindi scrive dati nell'oggetto di CArchive, come spiegato precedentemente. Su reimposta dalla funzione di Serialize, il framework elimina l'oggetto di CArchive quindi l'oggetto di CFile.
Pertanto, se si lascia il framework creare l'oggetto di CArchive per il documento, è sufficiente consiste nell'implementazione della funzione di Serialize di documento che scrive e letto da e verso l'archivio. È inoltre necessario implementare Serialize per qualsiasi CObject- oggetti derivati dalla funzione di Serialize del documento a sua volta serializza direttamente o indirettamente.
Creazione esplicita di un oggetto CArchive
Oltre a serializzare un documento mediante il framework, esistono altre occasioni quando è possibile richiedere un oggetto di CArchive. Ad esempio, è possibile serializzare i dati e dagli Appunti, rappresentati da un oggetto di CSharedFile. In alternativa, è possibile utilizzare un'interfaccia utente per salvare un file diverso da quello offerto dal framework. In questo caso, è possibile creare in modo esplicito un oggetto di CArchive. Questa operazione viene eseguita in modo che il framework è possibile, tramite la procedura seguente.
Per creare esplicitamente un oggetto CArchive
Costruisce un oggetto di CFile o un oggetto derivato da CFile.
Passare l'oggetto di CFile al costruttore per CArchive, come illustrato nel seguente esempio:
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 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 store.
Quando si archiviano completato o caricamento dei dati o da CArchive oggetto, chiuderlo. Sebbene gli oggetti CFile e ( CArchive ) automaticamente chiudano l'archivio e (file), è consigliabile in modo esplicito esegue questa operazione rende poiché 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 un oggetto CArchive
Nell'esempio seguente viene illustrato come terminare l'oggetto di CArchive :
archive.Close(); theFile.Close();