_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é.