Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание консоли в Win32(GUI)-приложении и использование cout/cin

563
24 сентября 2008 года
MrLinker
249 / / 17.09.2006
Создаю консоль:

Код:
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;
}


Функция printf() работает и выводит в консоль.
А вот cout не работает.

Что надо сделать, чтобы cout/cin заработали? Возможно ли это?
563
29 сентября 2008 года
MrLinker
249 / / 17.09.2006
Кому интересно, натыкал такое решение:

Код:
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;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог