윈도우 응용프로그램에서 콘솔창 띄우기

가끔 D3D작업이나 MFC같은 윈도우 프로젝트에서 작업을 하게 될때 

메세지박스가 아닌 콘솔창을 띄워서 작업을 하고싶을 때가 있다.. (나만 그런가?!)

그럴때는 윈도우 프로젝트에서 콘솔창을 사용하면된다.

방법은 여러개가 존재하는데 정리되어 있지 않아서 정리를 해본다.


1.윈도우 프로젝트에서 콘솔창을 할당하여 띄우는 방법


AllocConsole() / FreeConsole()을 이용한다. 

(WinCon.h에 존재함 / stdio.h를 포함하였다면 따로 안해줘도 됨)


콘솔창을 띄움 : AllocConsole();

콘솔창을 해제 : FreeConsole();


freopen("CONIN$", "r", stdin)
freopen("CONOUT$", "w", stderr)
freopen("CONOUT$", "w", stdout)


stdin, stdout, strerror는 기호에 맞게 사용해서 호출해주면 된다.

그러면 윈도우 프로젝트에서도 콘솔창을 할당하여 띄울 수 있다. 



2. 서브시스템을 변경하고, 진입점을 바꿔주는 방법

쉽게 표현하자면 서브시스템을 windows시스템에서 console로 시스템으로 변경하고, 진입점을 WinMain으로 하겠다는 얘기이다.


1) 프로젝트로 설정을 가서 바꾸는 방법




2) 위 설정을 소스로 대신하는 방법

#pragma comment(linker, "/entry:WinMainCRTStartup /subsystem:console" )

라고 작성하면 subSystem과 entry point를 한번에 바꾸는것도 가능하다.



이 글을 공유하기

댓글

Designed by JB FACTORY