_set_purecall_handler
Legt den Handler für einen rein virtuellen Funktionsaufruf fest.
_purecall_handler _set_purecall_handler( _purecall_handler function );
Parameter
- function
Die aufzurufende Funktion, wenn eine rein virtuelle Funktion aufgerufen wird. Eine _purecall_handler-Funktion muss einen void-Rückgabetyp haben.
Rückgabewert
Der vorherige _purecall_handler. Gibt NULL, wenn kein vorheriger Handler vorhanden ist.
Hinweise
Verwenden Sie _set_purecall_handler, wenn Sie rein virtuelle Funktionen abfangen und sie dem Benutzer auf eine spezifische Weise melden oder sie für Debuggingzwecke abfangen möchten.
Da es einen _purecall_handler für den gesamten Prozess gibt, wirkt sich das Aufrufen dieser Funktion sofort auf alle Threads aus. Der letzte Aufrufer in einem beliebigen Thread legt den Handler fest.
Es gibt einen einzigen _set_purecall_handler-Handler für alle dynamisch verknüpften DLLs oder ausführbaren Dateien. Auch wenn Sie _set_purecall_handler aufrufen, wird Ihr Handler möglicherweise durch einen anderen ersetzt, oder Sie ersetzen einen Handler, der von einer anderen DLL oder ausführbaren Datei festgelegt wurde.
Rufen Sie zum Wiederherstellen des Standardverhaltens _set_purecall_handler mit einem NULL-Argument auf.
Anforderungen
Routine |
Erforderlicher Header |
---|---|
_set_purecall_handler |
<stdlib.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
Beispiel
// _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;
}
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.