1. 왜 윈도우(Win32) 프로그래밍에서 콘솔 창이 필요한가
윈도우 창에서 프로그램을 작성하다 보면 쉽게 쉽게 디버그 상태를 보여 줄수 있는 창이 있다면 좋을 텐데 라는 생각을 종종 하게 된다. 물론 새로운 자식윈도우를 하나 더 띄우고 거기에 리스트 컨트롤을 붙인다면 그런 문제가 해결 되긴 하겠지만 그리 크지도, 작도 않은 프로그램에서 새로운 디버그 창을 만들어 내는 것은 여간 귀찮은 일이 아니다.
여러 SendMessage등 여러 단계를 거쳐야 하고, 초보에게 익숙하지 않은 함수를 쓰는 것보다는 printf를 사용한다면 프로그램 작성의 편리와 가독성을 높일 수 있을 것이다.
2. 사용 방법
1) #include <stdio.h>
콘솔 모드에서의 입출력을 하기위해서는 'stdio.h'가 필요하다.
2) 본 문
다음 두 함수로 콘솔 창을 띄울수 있다. 하지만 printf 함수를 호출하기 전까지는 창이 뜨진 않는다.
AllocConsole();
freopen( "CONOUT$", "wt", stdout);
//CONOUT$ - console 창
//wt - 텍스트 쓰기 모드
//stdout - 출력될 파일 포인터(모니터로 지정)
printf("hello DEBUG\n");
freopen( "CONOUT$", "wt", stdout);
//CONOUT$ - console 창
//wt - 텍스트 쓰기 모드
//stdout - 출력될 파일 포인터(모니터로 지정)
printf("hello DEBUG\n");
위의 구문을 WinMain에 추가하면 콘솔창이 뜬다.