_set_purecall_handler, _set_purecall_handler_m
Ustawia program obsługi dla wywołania funkcji wirtualnych czystego.
_purecall_handler _set_purecall_handler( _purecall_handler function );
Parametry
- function
Funkcja wywoływana, gdy czystego wirtualny funkcja jest wywoływana.Element _purecall_handler funkcji muszą być zwrócony typ void.
Wartość zwracana
Poprzedni _purecall_handler.Zwraca NULL , jeśli nie było żadnych poprzedniego programu obsługi.
Uwagi
Użyj _set_purecall_handler Jeśli chcesz łap czystego funkcje wirtualnych i poinformować użytkownika, w określony sposób lub łap je na potrzeby debugowania.
Ponieważ są określone _purecall_handler dla całego procesu, od razu wywołanie tej funkcji ma wpływ na wszystkie wątki.Element wywołujący ostatnich dotyczące dowolnego wątku Ustawia program obsługi.
Istnieje jeden _set_purecall_handler programu obsługi dla wszystkich dynamicznie połączony biblioteki DLL lub pliki wykonywalne; nawet jeśli wywołujesz _set_purecall_handler Twój program obsługi może być zastąpione innym lub chcesz zastąpić program obsługi ustawione przez innego DLL lub plik wykonywalny.
Aby przywrócić domyślne zachowanie, należy wywołać _set_purecall_handler z NULL argumentu.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_set_purecall_handler |
< stdlib.h > |
Aby uzyskać więcej informacji o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// _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;
}
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz przykłady wywołania platformy.