CArchive::WriteClass
Используйте WriteClass для хранения данных о версии и класса базового класса во время сериализации производного класса.
void WriteClass(
const CRuntimeClass* pClassRef
);
Параметры
- pClassRef
Указатель на структуру CRuntimeClass, относящейся к запрошенному типу ссылки класса.
Заметки
WriteClass записывает ссылка на CRuntimeClass для базового класса к CArchive.Используйте CArchive::ReadClass для получения ссылки.
WriteClass проверяет, сжатые данные класса совместимые с классом среды выполнения.Если оно не совместим, то WriteClass вызовет CArchiveException.
Класс среды выполнения должен использовать DECLARE_SERIAL и IMPLEMENT_SERIAL; в противном случае – значение WriteClass вызовет CNotSupportedException.
Можно использовать SerializeClass вместо WriteClass, который обрабатывает ссылки класса и чтение и запись.
Пример
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();
}
Требования
Header: afx.h