MFC 콘솔 출력

C++ 2013. 3. 8. 13:08

#include <io.h>


InitInstance() 에서.. 

AllocConsole();//콘솔 띄우기


setlocale(LC_ALL, ""); //한글 출력

_cprintf("콘솔\n");


// setup stdout

{

#pragma warning(disable:4311)

int fd = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), 0);

#pragma warning(default:4311)

FILE* fp = _fdopen( fd, "w" );


*stdout = *fp;

setvbuf( stdout, NULL, _IONBF, 0 );

}

// setup stdin

{

#pragma warning(disable:4311)

int fd = _open_osfhandle( (long)GetStdHandle( STD_INPUT_HANDLE ), 0);

#pragma warning(default:4311)

FILE* fp = _fdopen(fd, "r");

*stdin = *fp;

setvbuf(stdin, NULL, _IONBF, 0);

}


std::cout << "한글" << std::endl;

std::cout << "hi man" << std::endl;








ExitInstance() 에서..

FreeConsole();//콘솔 닫기




AllocConsole(), FreeConsole() 대신 stdafx.h에 

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

써도 됨.