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