Personnalisation des contrôles natifs à l'exécution
Quand vous compilez avec l’option /RTC (vérifications à l’exécution) ou utilisez le pragma runtime_checks
, la bibliothèque Runtime C fournit les vérifications à l’exécution natives. Dans certains cas, il est utile de personnaliser le contrôle à l'exécution :
Pour acheminer des messages de contrôle à l'exécution vers d'autres emplacements que le fichier ou la destination par défaut.
Pour spécifier une destination de sortie en cas de messages de contrôle à l'exécution venant d'un débogueur tiers.
Pour rapporter des messages de contrôle à l’exécution en provenance d’un programme compilé avec une version Release de la bibliothèque Runtime C. Les versions finales de la bibliothèque n'utilisent pas
_CrtDbgReportW
pour rapporter les erreurs d'exécution. Elles affichent à la place une boîte de dialogue Assert par erreur d’exécution.Pour personnaliser le contrôle des erreurs d'exécution, vous pouvez :
Écrire une fonction permettant d'obtenir un rapport sur les erreurs d'exécution. Pour plus d’informations, consultez Guide pratique pour écrire une fonction de création de rapports d’erreurs d’exécution.
Personnaliser la destination des messages d'erreur.
Demander des informations sur les erreurs de contrôle à l'exécution.
Personnaliser la destination des messages d'erreur
Si vous utilisez _CrtDbgReportW
pour rapporter des erreurs, vous pouvez utiliser _CrtSetReportMode
pour spécifier la destination des messages d'erreur.
Si vous utilisez une fonction personnalisée pour obtenir vos rapports, associez une erreur à un type de rapport à l'aide de _RTC_SetErrorType
.
Demander des informations sur les contrôles à l'exécution
_RTC_NumErrors
retourne le nombre de types d’erreurs détectés par les vérifications des erreurs au moment de l’exécution. Pour obtenir une brève description de chaque erreur, faites une boucle allant de 0 à la valeur de retour _RTC_NumErrors
, en transmettant, à chaque boucle, la valeur de l'itération à _RTC_GetErrDesc
. Pour plus d’informations, consultez _RTC_NumErrors et _RTC_GetErrDesc.