Compartilhar via


_set_purecall_handler

Define o manipulador para uma chamada de função virtual pura.

_purecall_handler _set_purecall_handler(     _purecall_handler function );

Parâmetros

  • function
    A função a ser chamada quando uma função virtual pura é chamada. Uma função _purecall_handler deve ter um tipo de retorno nulo.

Valor de retorno

O _purecall_handler anterior. Retorna NULL se não houver manipulador anterior.

Comentários

Use _set_purecall_handler se desejar capturar funções virtuais puras e relatá-las ao usuário de maneira específica ou capturá-la para fins de depuração.

Uma vez que há um _purecall_handler para o processo todo, chamar essa função tem um impacto imediato sobre todos os threads. O último chamador em qualquer thread define o manipulador.

Há um único manipulador _set_purecall_handler para todos os DLLs ou executáveis vinculados dinamicamente; mesmo que você chame _set_purecall_handler, o manipulador poderá ser substituído por outro ou esteja substituindo um conjunto de manipulador por outro DLL ou executável.

Para restaurar o comportamento padrão, chame _set_purecall_handler com um argumento NULL.

Requisitos

Rotina

Cabeçalho necessário

_set_purecall_handler

<stdlib.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

// _set_purecall_handler.cpp
// compile with: /W1
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>

class CDerived;
class CBase
{
public:
   CBase(CDerived *derived): m_pDerived(derived) {};
   ~CBase();
   virtual void function(void) = 0;

   CDerived * m_pDerived;
};

class CDerived : public CBase
{
public:
   CDerived() : CBase(this) {};   // C4355
   virtual void function(void) {};
};

CBase::~CBase()
{
   m_pDerived -> function();
}

void myPurecallHandler(void)
{
   printf("In _purecall_handler.");
   exit(0);
}

int _tmain(int argc, _TCHAR* argv[])
{
   _set_purecall_handler(myPurecallHandler);
   CDerived myDerived;
}
  

Equivalência do .NET Framework

Não aplicável. Para chamar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Tratamento de erros (CRT)

_purecall