|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Use WriteClass to store the version and class information of a base class during serialization of the derived class.
A pointer to the CRuntimeClass structure that corresponds to the class reference requested.
WriteClass verifies that the archived class information is compatible with your runtime class. If it is not compatible, WriteClass will throw a CArchiveException.
You can use SerializeClass instead of WriteClass, which handles both reading and writing of the class reference.
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();