CArchive::WriteClass

Utilizzare WriteClass per archiviare la versione e le informazioni sulle classi di una classe base durante la serializzazione della classe derivata.

void WriteClass(
   const CRuntimeClass* pClassRef 
);

Parametri

  • pClassRef
    Un puntatore a una struttura CRuntimeClass che corrisponde al riferimento della classe.

Note

WriteClass scrive un riferimento a CRuntimeClass per la classe base a CArchive.Utilizzo CArchive::ReadClass recuperare il riferimento.

WriteClass verifica che le informazioni sulle classi archiviate siano compatibili con la classe di runtime.Se non è compatibile, WriteClass genererà CArchiveException.

La classe di runtime deve utilizzare DECLARE_SERIAL e IMPLEMENT_SERIAL; in caso contrario, WriteClass genererà CNotSupportedException.

È possibile utilizzare SerializeClass anziché WriteClass, che gestisce la lettura e la scrittura del riferimento della classe.

Esempio

CFile myFile(_T("My__test__file.dat"), 
   CFile::modeCreate | CFile::modeReadWrite);

// Create a storing archive.
CArchive arStore(&myFile, CArchive::store);

// Store the class CAge in the archive.
arStore.WriteClass(RUNTIME_CLASS(CAge));

// Close the storing archive.
arStore.Close();

// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);

// Load a class from the archive.
CRuntimeClass* pClass = arLoad.ReadClass();
if (!pClass->IsDerivedFrom(RUNTIME_CLASS(CAge)))
{
   arLoad.Abort();                  
}

Requisiti

Header: afx.h

Vedere anche

Riferimenti

Classe di CArchive

Grafico della gerarchia

CArchive::ReadClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchive::SerializeClass

Classe di CArchiveException

Classe di CNotSupportedException

CObList::CObList