Win32로 프로젝트를 진행하다 보면 여러가지 상태의 변경상황을 확인해야하는데 이런 것을 디버그로 확인 하다보면 정말 불편하다 멈추고 확인하고 멈추고 확인하고... 계속 반복하다 보면 정말 귀찮다 그리고 프로그램의 특정 상황(게임같이 계속 프레임이 돌아가는 경우) 에서 확인 해야 한다면 거의 불가능한 수준이다.
그래서 Win32에서도 콘솔창을 띄울 수 있는 방법이 있다
프로그램 시작시 이런 코드를 추가해주면 된다
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
하지만 또 확인해야 할 것이 있는데 자신의 프로그램이 멀티바이트를 사용하는 프로그램인가 유니코드를 사용하는 프로그램인가에 따라서 코드가 조금 다르다
유니코드 사용시
#pragma comment(linker, "/entry:wWinMainCRTStartup /subsystem:console")
멀티바이트 코드 사용시
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
이렇게 코드를 달리 해주면 된다
근데 이걸 또 프로젝트 생성시 마다 확인해주고 다르게 작성하기 귀찮으니
c/c++인 경우 배운 전처리 지시기를 이용하면 편리하다
#ifdef UNICODE
#pragma comment(linker, "/entry:wWinMainCRTStartup /subsystem:console")
#else
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
이렇게 해주면 확인해줄 필요도없고 또 확경이 바뀌어도 알아서 해주니 편리하다
그리도 대부분 디버그 모드에서만 활용하니
#ifdef _DEBUG
#ifdef UNICODE
#pragma comment(linker, "/entry:wWinMainCRTStartup /subsystem:console")
#else
#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console")
#endif
#endif
이렇게 해주면 된다 그리고 프로그램 상에서 cout이나 printf 를 사용하면된다
(개인이 공부목적으로 쓰는 글이기 때문에 틀린 부분이 있을 수 있습니다)
'programing > c_c++' 카테고리의 다른 글
STL list 원소삭제법. (0) | 2018.02.24 |
---|