Partager via


_CrtSetReportFile

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

_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 de retour

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

Notes

_CrtSetReportFile est utilisé avec la fonction _CrtSetReportMode pour définir la destination ou des destinations pour un type spécifique de rapport généré par _CrtDbgReport. Lorsque _CrtSetReportMode a été appelé pour assigner _CRTDBG_MODE_FILE stockant le mode d'un type spécifique de rapport, _CrtSetReportFile doit ensuite être appelé pour définir un fichier spécifique ou un flux à utiliser comme destination. Lorsque _DEBUG n'est pas défini, les appels à _CrtSetReportFile sont supprimés pendant le prétraitement.

Le tableau suivant répertorie les options disponibles pour reportFile et le comportement résultant de _CrtDbgReport. Ces options sont définies comme bits indicateurs dans Crtdbg.h.

  • file handle
    Un handle vers le fichier qui sera la destination des messages. Aucune tentative n'est faite pour vérifier la validité du handle. Vous devez ouvrir et fermer le handle du 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 le message à 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 le message à stdout, que vous pouvez rediriger.

  • _CRTDBG_REPORT_FILE
    Retourne le mode de rapport actuel.

Le fichier de rapport utilisé par chaque type de rapport peut être séparément contrôlé. Par exemple, il est possible de spécifier qu'un reportType de _CRT_ERROR soit stocké dans stderr, tandis qu'un reportType de _CRT_ASSERT enregistré à un handle de fichier ou un flux défini par l'utilisateur.

Configuration requise

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 Windows Store . Les handles de flux standard associés à la console, stdin, stdout et stderr doivent être redirigés pour que les fonctions runtime C puissent les utiliser dans les applications Windows Store . Pour plus d'informations sur la compatibilité, consultez Compatibilité.

Bibliothèques : Versions Debug de Fonctions des bibliothèque CRT uniquement.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de code non managé.

Voir aussi

Référence

Routines de débogage