Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > вывод в консоли


Автор: sd13 22.5.2008, 18:46
функциями [code]
HANDLE    hConsoleIN = GetStdHandle(STD_INPUT_HANDLE) ;
HANDLE hConsoleOUT=GetStdHandle(STD_OUTPUT_HANDLE) 
[\code]
 я получаю хэндлы in/out консоли .
как , ктоме WriteConsoleOutputCharacter, теперь можно вывости сообшение на экран???


Автор: 586 22.5.2008, 18:55
WriteConsole, WriteFile (передаёшь hConsoleOUT)

Автор: Maka6er 6.7.2008, 11:16
А есть ли возможность выводить через поток ввода/вывода?

Автор: jonie 6.7.2008, 13:09
что это значит? через std::cout чтоли?
сделайте теперь SetStdHandle(STD_OUTPUT_HANDLE, hConsoleOUT);
но не факт что заработает
возможно сначала придется сделать нечто вроде:
Код

    HANDLE hOldStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
    SetStdHandle(STD_OUTPUT_HANDLE, hConsoleOUT);
    int old = _dup(1 );
    int newDescr = _open_osfhandle((intptr_t)hConsoleOUT, _O_APPEND );
    _dup2(newDescr, 1);
... тут пишем
   fflush( stdout );
   SetStdHandle(STD_OUTPUT_HANDLE, hOldStdOut);
   CloseHandle(hConsoleOUT);
   _dup2(old, 1 );
   flushall();

Автор: mrbrooks 6.7.2008, 15:25
Можно также использовать каналы - Pipe

Автор: Maka6er 6.7.2008, 19:36
Цитата(jonie @  6.7.2008,  13:09 Найти цитируемый пост)
через std::cout чтоли?
Именно.

Цитата(jonie @  6.7.2008,  13:09 Найти цитируемый пост)
сделайте теперь SetStdHandle(STD_OUTPUT_HANDLE, hConsoleOUT);
Спасибо, работает.

Автор: jonie 6.7.2008, 23:50
mrbrooks пайпы... а то тут можно через cout в файлы писать... ляпота (после пляски с инструментами администратора (ака бубн))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)