_CrtSetReportFile
在指定 _CRTDBG_MODE_FILE之后、_CrtSetReportMode,可以指定文件句柄接收文本。 _CrtDbgReport, _CrtDbgReportW 还用于**_CrtSetReportFile** 指定文本的目标 (请只调试版本)。
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
参数
reportType
报告类型:_CRT_WARN、_CRT_ERROR和 _CRT_ASSERT。reportFile
reportType的新报告文件。
返回值
在成功完成,_CrtSetReportFile 返回为报表类型定义的前一个报告文件指定在 reportType。 如果无效值为 reportType通过,此函数调用的参数无效处理程序,如 参数验证所述。 如果执行允许继续,errno 设置为 EINVAL,函数返回 _CRTDBG_HFILE_ERROR。 有关更多信息,请参见errno、_doserrno、_sys_errlist和_sys_nerr。
备注
_CrtSetReportFile 用于以 _CrtSetReportMode 函数定义目标或目标的 _CrtDbgReport生成的特定报告类型。 当 _CrtSetReportMode 调用对特定报表类型时分配报告的 _CRTDBG_MODE_FILE 模式,随后应调用 _CrtSetReportFile 定义特定文件或流用作为目标。 未定义 _DEBUG 时,在预处理期间,对 _CrtSetReportFile 中移除。
下表显示了可用选项的列表 reportFile 的和 _CrtDbgReport发生的行为。 这些选项定义为 Crtdbg.h 的位标志。
file handle
要为消息的目标的文件的句柄。 不会尝试验证处理的有效性。 必须打开和关闭句柄文件。 例如: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
为 stderr的消息写入,可以重定向如下所示: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
为 stdout的消息写入,重定向可以。_CRTDBG_REPORT_FILE
返回当前报告模式。
每个报表类型的报告文件可以单独进行控制。 例如,指定是可能的 _CRT_ERRORreportType 到 stderr报告,而 _CRT_ASSERTreportType 移至另一个用户定义的文件句柄或流报告。
要求
实例 |
必需的标头 |
选项标头 |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> |
<errno.h> |
控件个在 Windows 应用商店 apps 不受支持。 标准流处理与控件个,stdin,stdout和 stderr,在 C 运行时函数在 Windows 应用商店 apps 之前,可以使用它们必须重定向。 有关更多兼容性信息,请参见中介绍的 兼容性。
库: 只调试 CRT库功能 的版本。
示例
请参见 report。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例。