Personalização de despejo do objeto

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Pro, Premium e Ultimate

O tópico não é aplicável O tópico não é aplicável O tópico não é aplicável

Native only

O tópico não é aplicável

Quando você derivar uma classe de CObject, você pode substituir o Dump a função de membro para fornecer informações adicionais quando você usa DumpAllObjectsSince a objetos de despejo para o a janela de saída.

O Dump função grava uma representação textual de um membro do objeto variáveis a um contexto de despejo (CDumpContext). O contexto de despejo é semelhante a um fluxo de i/O. Você pode usar o operador de acréscimo (<<) para enviar dados para um CDumpContext.

Quando você substituir o Dump função, primeiro você deve chamar a versão da classe base Dump para despejar o conteúdo do objeto de classe base. Em seguida, saída de uma descrição textual e o valor para cada variável de membro de sua classe derivada.

A declaração da Dump função tem esta aparência:

class CPerson : public CObject
{
public:
#ifdef _DEBUG
    virtual void Dump( CDumpContext& dc ) const;
#endif

    CString m_firstName;
    CString m_lastName;
    // And so on...
};

Porque o objeto despejando só faz sentido quando você está depurando o seu programa, a declaração da Dump função é bracketed com um _ de # ifdef Debug / # endif bloco.

No exemplo a seguir, o Dump primeira chamadas de função do Dump a função para a sua classe de base. Em seguida, grava uma breve descrição de cada variável de membro com o valor do membro para o fluxo de diagnóstico.

#ifdef _DEBUG
void CPerson::Dump( CDumpContext& dc ) const
{
    // Call the base class function first.
    CObject::Dump( dc );

    // Now do the stuff for our specific class.
    dc << "last name: " << m_lastName << "\n"
        << "first name: " << m_firstName << "\n";
}
#endif

Você deve fornecer um CDumpContext argumento para especificar onde a saída de despejo será ir. A versão de depuração do MFC fornece um predefinido CDumpContext objeto chamado afxDump que envia a saída do depurador.

CPerson* pMyPerson = new CPerson;
// Set some fields of the CPerson object.
//...
// Now dump the contents.
#ifdef _DEBUG
pMyPerson->Dump( afxDump );
#endif

Consulte também

Conceitos

Despejos de objeto

Outros recursos

A Macro de rastreamento