CArchive::WriteClass
Use WriteClass to store the version and class information of a base class during serialization of the derived class.
void WriteClass( const CRuntimeClass* pClassRef );
Parameters
- pClassRef
- A pointer to the CRuntimeClass structure that corresponds to the class reference requested.
Remarks
WriteClass writes a reference to the CRuntimeClass for the base class to the CArchive. Use CArchive::ReadClass to retrieve the reference.
WriteClass verifies that the archived class information is compatible with your runtime class. If it is not compatible, WriteClass will throw a CArchiveException.
Your runtime class must use DECLARE_SERIAL and IMPLEMENT_SERIAL; otherwise, WriteClass will throw a CNotSupportedException.
You can use SerializeClass instead of WriteClass, which handles both reading and writing of the class reference.
Example
CFile myFile("myfile.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();
See Also
CArchive Overview | Class Members | Hierarchy Chart | CArchive::ReadClass | CArchive::GetObjectSchema | CArchive::SetObjectSchema | CArchive::SerializeClass | CArchiveException | CNotSupportedException | CObList::CObList