2012. 7. 31. 10:00

printf로 간단하게 디버깅하기

code-project에서 non-console(MFC 혹은 dll 내부)에서 printf를 사용하는 방법이 공유되었습니다.
(http://www.codeproject.com/Tips/227809/Good-old-dirty-printf-debugging-in-a-non-console-C)

예를들어 다음과 같이 MFC의 OnButton(...)에서도 console 창을 열어,
값이 궁금한 변수를 쉽게 확인할 수 있으니, 참고하시기 바랍니다.
#include 
void CfoobarDlg::OnBnClickedButton1()
{
	INT nImportant = 123;

	…
	AllocConsole();
	freopen("CONIN$", "r", stdin);
	freopen("CONOUT$", "w", stdout);
	freopen("CONOUT$", "w", stderr);_tprintf(TEXT("important=%d\r\n"), nImportant);
	…
}
즉, MFC상에서 Button을 누르면 console 창이 갑자기 뜨면서, 변수값이 출력됩니다.