개발은 하는건가..

VC++ 소스로 이동되는 TRACE 출력 본문

C, C++, MFC

VC++ 소스로 이동되는 TRACE 출력

수동애비 2018. 10. 31. 16:40
반응형

1.요약 

이전에 제가 LHCTRACE라고 해서 debug창에 trace된 내용을 더블클릭하면 소스의 위치로 찾아가는 매크로를 만든 적이 있습니다.(팁 게시판 참조) 

하지만 이미 Visual C++의 CRT에 포함되어 있다는 걸 이제야 알았습니다. 


2.본문 

ANSI CRT에는 TRACE와 같은 기능이 없지만 Visual C++에는 _RPTn 들과 _RPTFn 들이 있습니다. 여기서 _RPTFn 을 주목할 필요가 있는데 _RPTFn 은 다음과 같은 형태의 매크로들을 말합니다. 

_RPTF0(reportType, format); 

_RPTF1(reportType, format, arg1); 

_RPTF2(reportType, format, arg1, arg2); 

_RPTF3(reportType, format, arg1, arg2, arg3); 

_RPTF4(reportType, format, arg1, arg2, arg3, arg4); 

reportType은 다음 값중 하나를 넣으시면 됩니다. 

_CRT_WARN 

_CRT_ERROR 

_CRT_ASSERT 

단순히 trace의 용도로 사용하신다면 _CRT_WARN을 사용하시면 됩니다. 

나머지 인자들은 TRACE에 넣어주는 인자들과 동일합니다. 

역시나 _DEBUG 버전에서만 효과를 발휘하는 매크로 입니다. 

다음과 같이 사용하시면 됩니다. 

#include <crtdbg.h> 

... 



_RPTF2( _CRT_WARN, "하나만 더..%s %s", "주면 ", "안돼요? \n"); 


3.예제 



4.참고 

Debugging Windows Programs, Strategies, Tools, and Techniques for Visual C++ Programmers p.133 

Comments