_CrtSetReportMode
생성된 _CrtDbgReport
특정 보고서 형식의 대상 또는 대상과 호출_CrtDbgReport
하는 매크로(_CrtDbgReportW
예:_ASSERT
, _ASSERT_EXPR
_ASSERTE
매크로 및_RPT
, _RPTF
, _RPTW
_RPTFW
매크로)를 지정합니다(디버그 버전에만 해당).
구문
int _CrtSetReportMode(
int reportType,
int reportMode
);
매개 변수
reportType
보고서 형식: _CRT_WARN
, _CRT_ERROR
및 _CRT_ASSERT
reportMode
reportType
에 대한 새 보고서 모드입니다.
반환 값
성공적으로 완료되면 _CrtSetReportMode
는 reportType
에 지정된 보고서 형식에 대한 이전 보고서 모드를 반환합니다. 잘못된 값이 전달 reportType
되거나 잘못된 모드가 지정된 경우 매개 변수 유효성 검사에 설명된 reportMode
_CrtSetReportMode
대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 errno
를 EINVAL
로 설정하고 -1을 반환합니다. 자세한 내용은 다음을 참조하세요.errno
, _doserrno
, _sys_errlist
및 _sys_nerr
.
설명
_CrtSetReportMode
는 _CrtDbgReport
에 대한 출력 대상을 지정합니다. _ASSERT
, _ASSERTE
, _RPT
및 _RPTF
매크로가 _CrtDbgReport
를 호출하므로 _CrtSetReportMode
는 해당 매크로에서 지정한 텍스트의 출력 대상을 지정합니다.
_DEBUG
가 정의되지 않은 경우 전처리 중에 _CrtSetReportMode
에 대한 호출이 제거됩니다.
메시지의 출력 대상을 정의하기 위해 호출 _CrtSetReportMode
하지 않으면 다음 기본값이 적용됩니다.
어설션 실패 및 오류는 디버그 메시지 창에 전달됩니다.
Windows 애플리케이션의 경고는 디버거의 출력 창에 전송됩니다.
콘솔 애플리케이션의 경고는 표시되지 않습니다.
다음 표에서는 에 정의된 보고서 형식을 나열합니다 Crtdbg.h
.
보고서 종류 | 설명 |
---|---|
_CRT_WARN |
즉각적인 주의가 필요하지 않은 경고, 메시지 및 정보입니다. |
_CRT_ERROR |
오류, 복구할 수 없는 문제 및 즉각적인 주의가 필요한 문제입니다. |
_CRT_ASSERT |
어설션 실패(FALSE 로 계산되는 어설션된 식)입니다. |
_CrtSetReportMode
함수는 reportMode
에 지정된 새 보고서 모드를 reportType
에 지정된 보고서 형식에 할당하고, reportType
에 대해 이전에 정의된 보고서 모드를 반환합니다. 다음 표에는 reportMode
에 대해 사용 가능한 선택 항목 및 _CrtDbgReport
의 결과 동작 목록이 나와 있습니다. 이러한 옵션은 Crtdbg.h에서 비트 플래그로 정의되어 있습니다.
보고서 모드 | _CrtDbgReport 동작 |
---|---|
_CRTDBG_MODE_DEBUG |
디버거의 출력 창에 메시지를 작성합니다. |
_CRTDBG_MODE_FILE |
사용자가 제공한 파일 핸들에 메시지를 작성합니다. _CrtSetReportFile 는 대상으로 사용할 특정 파일 또는 스트림을 정의하기 위해 호출되어야 합니다. |
_CRTDBG_MODE_WNDW |
메시지 상자를 만들어 중단, 다시 시도 및 무시 단추와 함께 메시지를 표시합니다. |
_CRTDBG_REPORT_MODE |
다음과 같이 지정된 reportType 의 reportMode 를 반환합니다.1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
한 가지, 두 가지 또는 세 가지 모드를 사용하거나 모드를 전혀 사용하고 각 보고서 형식을 보고할 수 있습니다. 따라서 단일 보고서 형식에 대해 둘 이상의 대상을 정의할 수 있습니다. 예를 들어 다음 코드 조각을 사용하면 어설션 실패가 디버그 메시지 창과 stderr
둘 다에 전송됩니다.
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
또한 각 보고서 유형에 대한 보고 모드 또는 모드를 개별적으로 제어할 수 있습니다. 예를 들어 이전에 설명한 대로 디버그 메시지 창을 사용하여 표시되고 전송되는 동안 _CRT_ASSERT
출력 디버그 문자열로 이동하도록 지정할 reportType
_CRT_WARN
수 stderr
있습니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 | 선택적 헤더 |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리: C 런타임 라이브러리의 디버그 버전만 해당됩니다.