Как написать на консоль в приложении с графическим интерфейсом - PullRequest
6 голосов
/ 10 октября 2008

Справочная информация: Мы разрабатываем приложения для win32 и используем «Thompson Toolkit» в окнах, чтобы получить оболочку в стиле Unix, которую мы используем в качестве командной строки.

У нас есть программа с графическим интерфейсом (с WinMain и циклом сообщений), которую мы хотим записать в консоль, но printf и т. Д. Не работают, даже когда мы запускаем программу из консоли. Как мы можем написать на консоль из программы с графическим интерфейсом? Нам нужно напечатать там текст, чтобы автоматизированная система сборки могла отображать сообщения об ошибках и т. Д.

Спасибо.

Ответы [ 4 ]

5 голосов
/ 10 октября 2008

Короче, нужно подключить консоль. Для получения подробной информации и готового кода см. http://www.codeproject.com/KB/dialog/ConsoleAdapter.aspx.

1 голос
/ 10 октября 2008

Вместо входа в консоль войдите в файл, а затем отследите файл с помощью отдельного графического приложения. Это сохраняет консоль незагроможденной и обеспечивает более постоянную запись вашего журнала, что иногда очень полезно. Существуют различные библиотеки, которые сделают большую часть этого за вас, или вы можете сделать это просто и просто сделать это самостоятельно.

0 голосов
/ 14 февраля 2011

Обычно вам нужно создать консоль самостоятельно с помощью AllocConsole, AttachConsole. После этого вам нужно получить стандартные дескрипторы с GetStdHandle и «связать дескриптор файла времени выполнения C с существующим дескриптором файла операционной системы» с помощью _open_osfhandle.

Возвращенный дескриптор можно использовать для перезаписи crt stdin и stdout. После этого все методы CRT, такие как printf должны работать.

0 голосов
/ 10 октября 2008

где-то в настройках проекта Visual Studio вы можете включить консоль, если вы используете VS. (Не могу сказать где, потому что у меня его сейчас нет)

...