Condividi tramite


_set_purecall_handler

Imposta il gestore per una chiamata alla funzione virtuale pura.

_purecall_handler _set_purecall_handler(     _purecall_handler function );

Parametri

  • function
    Funzione da chiamare quando si chiama una funzione virtuale pura. Una funzione _purecall_handler deve avere un tipo restituito void.

Valore restituito

_purecall_handler precedente. Restituisce NULL se non è disponibile alcun gestore precedente.

Note

Usare _set_purecall_handler per intercettare funzioni virtuali pure e segnalarle all'utente in un modo specifico oppure per segnalarle a fini di debug.

Poiché è disponibile un _purecall_handler per l'intero processo, chiamare questa funzione influisce immediatamente su tutti i thread. L'ultimo chiamante in qualsiasi thread imposta il gestore.

È disponibile un unico gestore _set_purecall_handler per tutti i file DLL o eseguibili collegati in modo dinamico. Anche se si chiama _set_purecall_handler, è possibile che il gestore sia sostituito da un altro o che si stia sostituendo un gestore impostato da un altro file DLL o eseguibile.

Per ripristinare il comportamento predefinito, chiamare _set_purecall_handler con un argomento NULL.

Requisiti

Routine

Intestazione obbligatoria

_set_purecall_handler

<stdlib.h>

Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.

Esempio

// _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;
}
  

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione C standard, usare PInvoke. Per altre informazioni, vedere Esempi di platform invoke.

Vedere anche

Riferimenti

Gestione degli errori (CRT)

_purecall