다음을 통해 공유


_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에 대한 새 보고서 모드입니다.

반환 값

성공적으로 완료되면 _CrtSetReportModereportType에 지정된 보고서 형식에 대한 이전 보고서 모드를 반환합니다. 잘못된 값이 전달 reportType 되거나 잘못된 모드가 지정된 경우 매개 변수 유효성 검사에 설명된 reportMode_CrtSetReportMode 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 errnoEINVAL 로 설정하고 -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 다음과 같이 지정된 reportTypereportMode를 반환합니다.

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_WARNstderr있습니다.

요구 사항

루틴에서 반환된 값 필수 헤더 선택적 헤더
_CrtSetReportMode <crtdbg.h> <errno.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리: C 런타임 라이브러리의 디버그 버전만 해당됩니다.

참고 항목

디버그 루틴