CArchive::WriteObject
Armazena o especificadoCObject para o arquivar.
void WriteObject(
const CObject* pOb
);
Parâmetros
- pOb
Um ponteiro constante para o objeto que está sendo armazenado.
Comentários
Esta função normalmente é chamada pelo CArchive () inserção**<<**) operador sobrecarregado para CObject. WriteObject, por sua vez, chama o Serialize função da classe arquivada.
Você deve usar o IMPLEMENT_SERIAL macro para habilitar o arquivamento. WriteObject grava o nome de classe ASCII para o arquivar.Este nome de classe é validada posteriormente durante o processo de carregamento.Um esquema de codificação especial impede a duplicação desnecessária do nome de classe para vários objetos da classe.Este esquema também impede que o armazenamento redundante de objetos que são alvos de mais de um ponteiro.
O objeto exato (incluindo a presença do nome de classe ASCII) do método de codificação é um detalhe de implementação e pode mudar em futuras versões da biblioteca.
Observação: |
---|
Terminar de criar, excluindo e atualizando todos os seus objetos antes de começar a arquivá-los.O arquivar será ser corrompido se misturar arquivar com a modificação do objeto. |
Exemplo
Para obter uma definição da classe CAge, consulte o exemplo para CObList::CObList.
CFile myFile(_T("My__test__file.dat"),
CFile::modeCreate | CFile::modeReadWrite);
CAge age(21), *pAge;
// Create a storing archive.
CArchive arStore(&myFile, CArchive::store);
// Write the object to the archive
arStore.WriteObject(&age);
// Close the storing archive
arStore.Close();
// Create a loading archive.
myFile.SeekToBegin();
CArchive arLoad(&myFile, CArchive::load);
// Verify the object is in the archive.
pAge = (CAge*) arLoad.ReadObject(RUNTIME_CLASS(CAge));
ASSERT(age == *pAge);
Requisitos
Cabeçalho: afx.h