생성된 _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_FILE2 _CRTDBG_MODE_DEBUG4 _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 런타임 라이브러리의 디버그 버전만 해당됩니다.