_set_purecall_handler _set_purecall_handler_m
Nastaví popisovač volání funkce čistého virtuální.
_purecall_handler _set_purecall_handler(
_purecall_handler function
);
_purecall_handler _set_purecall_handler_m(
_purecall_handler_mfunction
);
Parametry
- function
Při čisté virtuální funkce je volána funkce.A _purecall_handler nebo _purecall_handler_m funkce by měla mít typ vrácené hodnoty void.
Vrácená hodnota
Předchozí _purecall_handler.Vrátí NULL Pokud byl předchozí popisovač.
Poznámky
Použití _set_purecall_handler Pokud chcete zachytit čistého virtuálních funkcí a informovat uživatele určitým způsobem nebo jejich úlovku pro účely ladění.
Protože je jeden _purecall_handler celý proces volání této funkce okamžitě ovlivní všechny podprocesy.Poslední volajícího v jakékoli vlákno Nastaví popisovač.
Existuje jeden _set_purecall_handler obslužnou rutinu pro všechny dynamicky propojené soubory DLL nebo spustitelné soubory; i v případě, že při volání _set_purecall_handler vaše Obsluha může být nahrazena jinou nebo nahrazujete popisovač nastavit jiný DLL nebo spustitelný soubor.
Chcete-li obnovit výchozí chování volání _set_purecall_handler seNULL argument.
_set_purecall_handler_m Verze funkce je pro smíšený režim CRT.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_set_purecall_handler, _set_purecall_handler_m |
<stdlib.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Příklad
// _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;
}
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.