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

См. также

Ссылки

Класс CArchive

Диаграмма иерархии

CArchive::ReadClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

CArchive::SerializeClass

Класс CArchiveException

Класс CNotSupportedException

CObList::CObList