Compartir a través de


set_terminate (CRT)

Instala su propia rutina de finalización a la que debe llamar terminate.

Sintaxis

terminate_function set_terminate( terminate_function termFunction );

Parámetros

termFunction
Puntero a una función de finalización que se escribe.

Valor devuelto

Devuelve un puntero a la función anterior registrada por set_terminate para que después se pueda restaurar dicha función. Si no se ha establecido ninguna función anterior, el valor devuelto se puede usar para restaurar el comportamiento predeterminado; este valor puede ser NULL.

Comentarios

La función set_terminate instala termFunction como la función llamada por terminate. set_terminate se usa con el control de excepciones de C++ y se puede llamar en cualquier momento en el programa antes de que se produzca la excepción. terminate llama a abort de forma predeterminada. Puede cambiar este comportamiento predeterminado si escribe su propia función de finalización y llama a set_terminate con el nombre de esta función como argumento. terminate llama a la última función especificada como argumento para set_terminate. Después de realizar las tareas de limpieza deseadas, termFunction debe salir del programa. Si no sale (si vuelve a su autor de llamada), abort se llama a .

En un entorno multiproceso, las funciones de finalización se mantienen por separado para cada subproceso. Cada subproceso nuevo debe instalar su propia función de finalización. Por lo tanto, cada subproceso se encarga de su propio control de finalización.

El tipo terminate_function está definido en EH.H como puntero a una función de finalización definida por el usuario, termFunction que devuelve void. La función termFunction personalizada no puede tomar ningún argumento y no debe volver a su autor de llamada. Si es así, se llama a abort. Es posible que no se pueda producir una excepción desde termFunction.

typedef void ( *terminate_function )( );

Nota:

La función set_terminate solo funciona fuera del depurador.

Hay un único set_terminate controlador para todos los archivos DLL o EXE vinculados dinámicamente; incluso si llama a set_terminate su controlador puede reemplazarse por otro, o puede reemplazar un controlador establecido por otro ARCHIVO DLL o EXE.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.

Requisitos

Routine Encabezado necesario
set_terminate <eh.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

Vea el ejemplo de terminate.

Consulte también

Rutinas de control de excepciones
abort
_get_terminate
set_unexpected
terminate
unexpected