_CrtSetReportHook
클라이언트 정의 보고 함수를 C 런타임 디버그 보고 프로세스에 연결함으로써 설치합니다(디버그 버전에만 해당).
구문
_CRT_REPORT_HOOK _CrtSetReportHook(
_CRT_REPORT_HOOK reportHook
);
매개 변수
reportHook
C 런타임 디버그 보고 프로세스에 연결할 새로운 클라이언트 정의 보고 함수입니다.
반환 값
이전 클라이언트 정의 보고 함수를 반환합니다.
설명
_CrtSetReportHook
를 사용하면 애플리케이션이 C 런타임 디버그 라이브러리 보고 프로세스에 고유한 보고 함수를 사용할 수 있습니다. 따라서 디버그 보고서를 생성하기 위해 호출될 때마다 _CrtDbgReport
애플리케이션의 보고 함수가 먼저 호출됩니다. 이 기능을 통해 애플리케이션이 디버그 보고서 필터링과 같은 작업을 수행할 수 있어 특정 할당 형식에 집중하거나 _CrtDbgReport
의 사용을 통해 이용할 수 없는 대상에 보고서를 보낼 수 있습니다. _DEBUG
가 정의되지 않은 경우 전처리 중에 _CrtSetReportHook
에 대한 호출이 제거됩니다.
보다 강력한 버전은 _CrtSetReportHook
다음을 참조하세요 _CrtSetReportHook2
.
_CrtSetReportHook
함수는 reportHook
에 지정된 새로운 클라이언트 정의 보고 함수를 설치하고 이전의 클라이언트 정의 후크를 반환합니다. 다음 예제에서는 클라이언트 정의 보고서 후크가 어떻게 프로토타입화되어야 하는지를 보여 줍니다.
int YourReportHook( int reportType, char *message, int *returnValue );
여기서 reportType
은 디버그 보고서 형식(_CRT_WARN
, _CRT_ERROR
또는 _CRT_ASSERT
)이며, message
는 보고서에 포함할 완전히 어셈블된 디버그 사용자 메시지이고, returnValue
는 _CrtDbgReport
에 의해 반환되어야 하는 클라이언트 정의 보고 함수에서 지정한 값입니다. 사용 가능한 보고서 형식에 대한 전체 설명은 함수를 참조하세요 _CrtSetReportMode
.
클라이언트 정의 보고 함수에서 추가 보고가 필요하지 않도록 디버그 메시지를 완벽하게 처리하면 함수가 TRUE
를 반환합니다. 함수가 FALSE
를 반환하는 경우 _CrtDbgReport
가 호출되어 보고서 형식, 모드 및 파일에 대한 현재 설정을 사용하여 디버그 보고서를 생성합니다. 또한 returnValue
에 _CrtDbgReport
반환 값을 지정하여 애플리케이션이 디버그 중단 발생 여부도 제어할 수 있습니다. 디버그 보고서가 구성되고 생성되는 방법에 대한 전체 설명은 , _CrtSetReportFile
및 _CrtDbgReport
를 참조하세요_CrtSetReportMode
.
다른 후크 지원 런타임 함수를 사용하고 고유한 클라이언트 정의 후크 함수를 작성하는 방법에 대한 자세한 내용은 디버그 후크 함수 쓰기를 참조하세요.
참고 항목
애플리케이션이 /clr로 컴파일되고 애플리케이션이 main을 종료한 후 보고 함수가 호출되면 보고 함수가 CRT 함수를 호출하는 경우 CLR이 예외를 throw합니다.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리
C 런타임 라이브러리의 디버그 버전만 해당됩니다.