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.