잘 알다시피, ASSERT는 너무나도 자주쓰는 Debug용 macro다. 이번에 소개할것은 ASSERT의 확장형인 ASSERTE 및
debugger's output 창에 assert 문구를 삽입하는것을 소개한다.
추가로, _CrtSetReportMode를 이용하여 File로 Log를 남길수도 있다. 자세한것은 MSDN 참고
#ifndef _MYASSERTE
#ifndef _CRT_SET_REPORT_MODE
#define _CRT_SET_REPORT_MODE
#define _MYASSERTE(expr) \
_CrtSetReportMode(_CRT_ASSERT,_CRTDBG_MODE_DEBUG|_CRTDBG_MODE_WNDW);\
(void) ((!!(expr)) || \
(1 != _CrtDbgReportW(_CRT_ASSERT, _CRT_WIDE(__FILE__), __LINE__, _CRT_WIDE(__FUNCTION__), _CRT_WIDE(#expr))) || \
(_CrtDbgBreak(), 0))
#else
#define _MYASSERTE(expr,msg) \\
(void) ((!!(expr)) || \
(1 != _CrtDbgReportW(_CRT_ASSERT, _CRT_WIDE(__FILE__), __LINE__, _CRT_WIDE(__FUNCTION__), _CRT_WIDE(#expr))) || \
(_CrtDbgBreak(), 0))
#endif
#endif
댓글 없음:
댓글 쓰기