Exporter (0) Imprimer
Développer tout
and
div
eof
not
or
xor
Développer Réduire
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

_set_purecall_handler

Définit le gestionnaire pour un appel de fonction virtuelle pure.

_purecall_handler _set_purecall_handler(     _purecall_handler function );

function

Fonction à appeler quand une fonction virtuelle pure est appelée. Une fonction _purecall_handler doit avoir un type de retour void.

_purecall_handler précédent. Retourne NULL s'il n'existait pas de gestionnaire précédemment.

Utilisez _set_purecall_handler si vous voulez intercepter les fonctions virtuelles pures et les signaler à l'utilisateur d'une manière spécifique ou les intercepter à des fins de débogage.

Sachant qu'il n'existe qu'un seul _purecall_handler pour l'ensemble du processus, l'appel de cette fonction a un impact immédiat sur tous les threads. Le dernier appelant au niveau d'un thread est celui qui définit le gestionnaire.

Il existe un seul gestionnaire _set_purecall_handler pour l'ensemble des DLL ou exécutables liés de manière dynamique ; même si vous appelez _set_purecall_handler, il se peut que votre gestionnaire soit remplacé par un autre ou que vous remplaciez un gestionnaire défini par une autre DLL ou un autre exécutable.

Pour rétablir le comportement par défaut, appelez _set_purecall_handler avec un argument NULL.

Routine

En-tête requis

_set_purecall_handler

<stdlib.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

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

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, voir Exemples d'appel de plateforme.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft