(0) exportieren Drucken
Alle erweitern
CAB
Uhr
EOF
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

_set_purecall_handler, _set_purecall_handler_m

Legt den Handler für einen reinen virtuellen Funktionsaufruf fest.

_purecall_handler _set_purecall_handler( 
   _purecall_handler function
);
_purecall_handler _set_purecall_handler_m( 
   _purecall_handler_mfunction
);

function

Die Funktion, die aufgerufen werden soll, wenn eine rein virtuelle Funktion aufgerufen wird. Eine _purecall_handler oder _purecall_handler_m-Funktion sollte einen leeren Rückgabetyp verfügen.

Vorherige _purecall_handler. Gibt NULL zurück, wenn es keinen vorherigen Handler vorhanden waren.

Verwenden Sie _set_purecall_handler , wenn Sie rein virtuelle Funktionen abfangen und der Benutzer auf eine bestimmte Weise melden oder sie zu Debugzwecken abfangen möchten.

Da es sich um ein _purecall_handler für den gesamten Prozess vorhanden sind, wirkt sich das Aufrufen dieser Funktion sofort alle Threads aus. Der letzte Aufrufer auf einem beliebigen Thread den Handler legt diesen fest.

Es wird ein einzelner _set_purecall_handler-Handler für alle dynamisch verknüpfte DLL oder ausführbare Dateien. Auch wenn Sie _set_purecall_handler aufrufen, wird der Handler durch andere ersetzt oder das ersetzen Sie einen Handler, der durch eine andere DLL oder ausführbare Datei festgelegt ist.

So Standardverhalten wiederherstellen, rufen Sie _set_purecall_handler mit einemNULL-Argument.

Die _set_purecall_handler_m-Version der Funktion ist für gemischten Modus CRT.

Routine

Erforderlicher Header

_set_purecall_handler ,

_set_purecall_handler_m

<stdlib.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

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

Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft