BOOL CreateConsole(void)
{
FreeConsole();
if (AllocConsole())
{
int hCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
*stdout = *(::_fdopen(hCrt, "w"));
::setvbuf(stdout, NULL, _IONBF, 0);
*stderr = *(::_fdopen(hCrt, "w"));
::setvbuf(stderr, NULL, _IONBF, 0);
return TRUE;
}
return FALSE;
}
Создание консоли в Win32(GUI)-приложении и использование cout/cin
Код:
Функция printf() работает и выводит в консоль.
А вот cout не работает.
Что надо сделать, чтобы cout/cin заработали? Возможно ли это?
Код:
BOOL CreateConsole(void)
{
FreeConsole();
if (AllocConsole())
{
int hCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
*stdout = *(::_fdopen(hCrt, "w"));
::setvbuf(stdout, NULL, _IONBF, 0);
*stderr = *(::_fdopen(hCrt, "w"));
::setvbuf(stderr, NULL, _IONBF, 0);
ios::sync_with_stdio();
return TRUE;
}
return FALSE;
}
{
FreeConsole();
if (AllocConsole())
{
int hCrt = _open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE), _O_TEXT);
*stdout = *(::_fdopen(hCrt, "w"));
::setvbuf(stdout, NULL, _IONBF, 0);
*stderr = *(::_fdopen(hCrt, "w"));
::setvbuf(stderr, NULL, _IONBF, 0);
ios::sync_with_stdio();
return TRUE;
}
return FALSE;
}