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