CArchive::WriteClass
Use WriteClass para armazenar as informações de versão e a classe de uma classe base durante a serialização da classe derivada.
void WriteClass(
const CRuntimeClass* pClassRef
);
Parâmetros
- pClassRef
Um ponteiro para o CRuntimeClass estrutura que corresponde à referência de classe solicitada.
Comentários
WriteClass grava uma referência para o CRuntimeClass para a classe base para o CArchive. Use CArchive::ReadClass para recuperar a referência.
WriteClass verifica se as informações de classe arquivada são compatível com sua classe em tempo de execução. Se não for compatível, WriteClass lançará um CArchiveException.
A classe tempo de execução deve usar DECLARE_SERIAL and IMPLEMENT_SERIAL; caso contrário, WriteClass lançará um CNotSupportedException.
Você pode usar SerializeClass em vez de WriteClass, que manipula tanto de leitura e gravação da 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