set_unexpected (CRT)

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Instala la función de finalización al llamar a unexpected.

unexpected_function set_unexpected(  
   unexpected_function unexpFunction   
);  

Parámetros

unexpFunction
Puntero a una función que escriba para reemplazar el unexpected (función).

Devuelve un puntero a la función de finalización anterior registrado por _set_unexpected para que la función anterior se puede restaurar más adelante. Si no se ha establecido ninguna función anterior, el valor devuelto puede utilizarse para restaurar el comportamiento predeterminado; Este valor puede ser NULL.

El set_unexpected función instala unexpFunction como la función llamada a unexpected. unexpectedno se utiliza en la implementación actual de control de excepciones de C++. El unexpected_function tipo está definido en el controlador de eventos. H como un puntero a una función inesperado definido por el usuario, unexpFunction que devuelve void. Personalizado unexpFunction función no debe devolver al llamador.

typedef void ( *unexpected_function )( );  

De forma predeterminada, unexpected llamadas terminate. Puede cambiar este comportamiento predeterminado escribiendo su propia función de finalización y llamar a set_unexpected con el nombre de la función como su argumento. unexpectedllama a la última función especificada como argumento de set_unexpected.

A diferencia de la función de terminación personalizados instalada mediante una llamada a set_terminate, se puede producir una excepción desde unexpFunction.

En un entorno multiproceso, funciones inesperadas se mantienen por separado para cada subproceso. Cada nuevo subproceso necesita para instalar su propia función inesperado. Por lo tanto, cada subproceso está a cargo de su propio control inesperado.

En la implementación actual de Microsoft de control de excepciones de C++, unexpected llamadas terminate de forma predeterminada y nunca se llama por la biblioteca de tiempo de ejecución del control de excepciones. No hay ninguna ventaja particular de llamada unexpected en lugar de terminate.

Hay una sola set_unexpected controlador para todos los vinculados dinámicamente archivos DLL o exe; incluso si se llama a set_unexpected el controlador puede ser reemplazado por otra o que va a reemplazar un controlador establecido por otro archivo DLL o EXE.

RutinaEncabezado necesario
set_unexpected<eh.h></eh.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

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

Rutinas de control de excepciones
anular
_get_unexpected
set_terminate
Finalizar
inesperado

Mostrar: