CArchive::WriteClass
Visual Studio 2010
Use WriteClass to store the version and class information of a base class during serialization of the derived class.
void WriteClass( const CRuntimeClass* pClassRef );
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.
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(); }