set_terminate
(CRT)
Installe votre propre routine d’arrêt que doit appeler terminate
.
Syntaxe
terminate_function set_terminate( terminate_function termFunction );
Paramètres
termFunction
Pointeur désignant une fonction d’arrêt que vous écrivez.
Valeur retournée
Retourne un pointeur vers la précédente fonction inscrite par set_terminate
, si bien qu’elle peut être restaurée ultérieurement. Si aucune fonction précédente n’a été définie, la valeur de retour peut être utilisée pour restaurer le comportement par défaut ; cette valeur peut être NULL
.
Notes
La fonction set_terminate
installe termFunction
comme fonction appelée par terminate
. set_terminate
est utilisée avec la gestion des exceptions C++ et peut être appelée à tout moment dans votre programme avant que l’exception soit levée. terminate
appelle abort
par défaut. Vous pouvez modifier ce comportement par défaut en écrivant votre propre fonction d’arrêt et en appelant set_terminate
avec le nom de votre fonction comme argument. terminate
appelle la dernière fonction transmise comme argument à set_terminate
. Une fois les tâches de nettoyage souhaitées effectuées, termFunction
quittez le programme. S’il ne quitte pas (s’il revient à son appelant), abort
est appelé.
Dans un environnement multithread, les fonctions d’arrêt sont gérées séparément pour chaque thread. Chaque nouveau thread doit installer sa propre fonction d’arrêt. Par conséquent, chaque thread est responsable de sa propre gestion des arrêts.
Le type terminate_function
est défini dans EH.H comme pointeur désignant une fonction d’arrêt définie par l’utilisateur, termFunction
qui retourne void
. Votre fonction termFunction
personnalisée ne peut pas prendre d’arguments et ne doit pas revenir à son appelant. Si c’est le cas, la fonction abort
est appelée. Une exception ne peut pas être levée à partir de termFunction
.
typedef void ( *terminate_function )( );
Remarque
La fonction set_terminate
opère uniquement en dehors du débogueur.
Il existe un seul set_terminate
gestionnaire pour toutes les DLL ou exEs liées dynamiquement ; même si vous appelez set_terminate
votre gestionnaire peut être remplacé par un autre, ou vous remplacez peut-être un gestionnaire défini par une autre DLL ou EXE.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Routine | En-tête requis |
---|---|
set_terminate |
<eh.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
Consultez l’exemple pour terminate
.
Voir aussi
Routines de gestion des exceptions
abort
_get_terminate
set_unexpected
terminate
unexpected