CArchive::WriteClass
Use WriteClass para armazenar informações de versão e da classe de uma classe base durante a serialização da classe derivada.
void WriteClass(
const CRuntimeClass* pClassRef
);
Parâmetros
- pClassRef
Um ponteiro para a estrutura de CRuntimeClass que corresponde à referência de classe solicitada.
Comentários
WriteClass grava uma referência a CRuntimeClass para a classe base a CArchive.Use CArchive::ReadClass para recuperar a referência.
WriteClass verifica que informações arquivadas da classe é compatível com sua classe de tempo de execução.Se não for compatível, WriteClass irá acionar CArchiveException.
Sua classe de tempo de execução deve usar DECLARE_SERIAL e IMPLEMENT_SERIAL; caso contrário, WriteClass irá acionar CNotSupportedException.
Você pode usar SerializeClass em vez de WriteClass, que manipula a leitura e gravação de referência da classe.
Exemplo
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();
}
Requisitos
Cabeçalho: afx.h