Partage via


_CrtSetReportFile

Après avoir utilisé _CrtSetReportMode pour spécifier _CRTDBG_MODE_FILE, vous pouvez spécifier le handle de fichier pour recevoir le texte du message. _CrtSetReportFile est également utilisé par _CrtDbgReport, _CrtDbgReportW pour spécifier la destination du texte (version debug uniquement).

Syntaxe

_HFILE _CrtSetReportFile(
   int reportType,
   _HFILE reportFile
);

Paramètres

reportType
Type de rapport : _CRT_WARN, _CRT_ERROR et _CRT_ASSERT.

reportFile
Nouveau fichier de rapport pour reportType.

Valeur retournée

Quand l’opération réussit, _CrtSetReportFile retourne le fichier de rapport précédent défini pour le type de rapport spécifié dans reportType. Si une valeur non valide est passée pour reportType, cette fonction appelle le gestionnaire de paramètres non valides, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, errno a la valeur EINVAL et la fonction retourne une valeur _CRTDBG_HFILE_ERROR. Pour plus d'informations, voir errno, _doserrno, _sys_errlist et _sys_nerr.

Notes

_CrtSetReportFile est utilisé avec la fonction _CrtSetReportMode pour définir la ou les destinations d’un type de rapport spécifique généré par _CrtDbgReport. Lorsque vous appelez _CrtSetReportMode afin d’affecter le mode de création de rapports _CRTDBG_MODE_FILE pour un type de rapport spécifique, appelez également _CrtSetReportFile pour spécifier le flux ou le fichier de destination. Quand _DEBUG n’est pas défini, les appels à _CrtSetReportFile sont supprimés lors du prétraitement.

La liste suivante répertorie les options disponibles pour reportFile et le comportement résultant de _CrtDbgReport. Ces options sont définies sous forme d’indicateurs binaires dans Crtdbg.h.

  • handle de fichier

    Handle vers le fichier qui sera la destination des messages. Aucune tentative n’est effectuée pour vérifier la validité du handle. Vous devez ouvrir et fermer le handle vers le fichier. Par exemple :

    HANDLE hLogFile;
    hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE,
        FILE_SHARE_WRITE, NULL, CREATE_ALWAYS,
        FILE_ATTRIBUTE_NORMAL, NULL);
    _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_WARN, hLogFile);
    
    _RPT0(_CRT_WARN,"file message\n");
    CloseHandle(hLogFile);
    
  • _CRTDBG_FILE_STDERR

    Écrit un message vers stderr, qui peut être redirigé comme suit :

    freopen( "c:\\log2.txt", "w", stderr);
    _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
    
    _RPT0(_CRT_ERROR,"1st message\n");
    
  • _CRTDBG_FILE_STDOUT

    Écrit un message vers stdout, que vous pouvez rediriger.

  • _CRTDBG_REPORT_FILE

    Retourne le mode de rapport actuel.

Vous pouvez contrôler le fichier de rapport utilisé par chaque type de rapport séparément. Par exemple, vous pouvez spécifier qu’un reportType_CRT_ERROR soit consigné via stderr, et qu’un reportType_CRT_ASSERT soit consigné via un flux ou handle de fichier défini par l’utilisateur.

Spécifications

Routine En-tête requis En-tête facultatif
_CrtSetReportFile <crtdbg.h> <errno.h>

La console n’est pas prise en charge dans les applications de la plateforme Windows universelle (UWP). Les handles de flux standard associés à la console (stdin, stdout et stderr) doivent être redirigés pour que les fonctions de runtime C puissent les utiliser dans les applications UWP. Pour plus d’informations sur la compatibilité, consultez Compatibility.

Bibliothèques : versions Debug des fonctionnalités de bibliothèque CRT uniquement.

Voir aussi

Routines de débogage