set_unexpected (CRT)
Installe votre propre fonction d'arrêt soit appelée par unexpected.
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
Paramètres
- unexpFunction
Pointeur vers une fonction que vous écrivez pour remplacer la fonction d' unexpected .
Valeur de retour
Retourne un pointeur vers une fonction précédente d'arrêt stockée par _set_unexpected afin que la fonction précédente puisse être restaurées 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 d' set_unexpected installe unexpFunction comme fonction appelée par unexpected.unexpected n'est pas utilisé dans l'implémentation de la gestion des exceptions C++ actuels.Le type d' unexpected_function est défini dans EH.H en tant que pointeur vers une fonction inattendue définie par l'utilisateur, unexpFunction qui retourne void.Votre fonction personnalisée d' unexpFunction ne doit jamais revenir à son appelant.
typedef void ( *unexpected_function )( );
Par défaut, appelle terminated' unexpected .Vous pouvez modifier ce comportement par défaut en écrivant votre propre fonction d'arrêt et en appelant set_unexpected avec le nom de la fonction comme argument.unexpected appelle la dernière fonction donnée comme argument à set_unexpected.
Contrairement à la fonction personnalisée d'arrêt installée par un appel à set_terminate, une exception peut être levée d' unexpFunction.
Dans un environnement multithread, des fonctions inattendues sont conservées séparément pour chaque thread.Besoins de chaque les nouveaux threads d'installer sa propre fonction inattendue.ainsi, chaque thread est responsable de sa propre gestion inattendue.
Dans l'implémentation Microsoft actuelle de la gestion des exceptions C++, unexpected appelle terminate par défaut et n'est jamais appelé par la bibliothèque Runtime de gestion des exceptions.il n'y a aucun avantage particulier à appeler unexpected plutôt qu' terminate.
Il existe un gestionnaire unique d' set_unexpected pour toutes les DLL ou EXE dynamiquement liés ; même si vous appelez set_unexpected votre gestionnaire peut être remplacée par une autre ou que vous remplacez un gestionnaire défini par une DLL ou un EXÉCUTABLE différent.
Configuration requise
routine |
en-tête requis |
---|---|
set_unexpected |
<eh.h> |
Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.