Exportar (0) Imprimir
Expandir todo
div
EOF
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

_set_purecall_handler, _set_purecall_handler_m

Establece el controlador para una llamada de función virtual pura.

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

function

Función que se llamará cuando se llama a una función virtual pura. Una función de _purecall_handler o de _purecall_handler_m debe tener un tipo de valor devuelto void.

_purecall_handler anterior. Devuelve NULL si no existe ningún controlador anterior.

Utilice _set_purecall_handler si desea detectar funciones virtuales puras y para seleccione al usuario de forma específica o para detectarlas para fines de depuración.

Dado que hay un _purecall_handler para el proceso completo, llamar a esta función inmediatamente afecta a todos los subprocesos. El llamador pasa en cualquier subproceso establece el controlador.

Hay solo controlador de _set_purecall_handler para todos los archivos DLL o ejecutables dinámicamente vinculados; incluso si llama a _set_purecall_handler el controlador puede reemplazar por otro o que se está reemplazando un controlador establecido por otra DLL o ejecutable.

Para restaurar el comportamiento predeterminado, llame a _set_purecall_handler conun argumento deNULL .

La versión de _set_purecall_handler_m de la función es para el modo mixto CRT.

rutina

Encabezado necesario

_set_purecall_handler ,

_set_purecall_handler_m

<stdlib.h>

Para obtener más información de compatibilidad, vea compatibilidad en la Introducción.

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

No es aplicable Para llamar a la función estándar de C, utilice PInvoke. Para obtener más información, vea La invocación de plataforma ejemplos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft