Partager via


_CrtSetReportFile

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

_HFILE _CrtSetReportFile( 
   int reportType,
   _HFILE reportFile 
);

Paramètres

  • reportType
    Type de rapport : _CRT_WARN, _CRT_ERROR, et _CRT_ASSERT.

  • reportFile
    Fichier de rapport pour reportType.

Valeur de retour

Sur l'achèvement réussi, _CrtSetReportFile retourne le fichier de rapport précédent défini pour le type d'état spécifié dans reportType.Si une valeur non valide est passée pour reportType, cette fonction appelle le gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, errno a la valeur 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 de _CrtSetReportMode pour définir la destination ou des destinations pour un type spécifique d'état généré par _CrtDbgReport.Lorsque _CrtSetReportMode a été appelé pour assigner _CRTDBG_MODE_FILE stockant le mode d'un type spécifique d'état, _CrtSetReportFile doit ensuite être appelé pour définir le 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 affiche une liste de choix disponibles pour reportFile et le comportement résultant d' _CrtDbgReport.Ces options sont définies comme des bits indicateurs dans Crtdbg.h.

  • file handle
    Un handle au 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 au 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 Rapport actuel.

Le fichier de rapport utilisés par chaque type de rapport peut être contrôlé séparément.Par exemple, il est possible de spécifier qu' reportType d' _CRT_ERROR stocké à stderr, tandis que reportType d' _CRT_ASSERT soit stocké dans un handle de fichier ou un flux définie 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 d' Windows Store .Les handles standard de flux de données associés à la console, stdin, stdout, et stderr, doivent être redirigés pour que les fonctions runtime C peuvent les utiliser dans des applications d' Windows Store .Pour plus d'informations de compatibilité, consultez Compatibilité dans l'introduction.

Versions debug deBibliothèques : de Fonctionnalités de bibliothèque CRT uniquement.

Exemple

Consultez report.

É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

Déboguez des routines