Как я могу вывести в окно родительской консоли из приложения Win32 C ++? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть приложение WinAPI / Win32.Если я пытаюсь использовать cin / cout / cerr, когда он запускается из командной строки, он не работает.Я попытался переключить тип проекта с приложения Windows на консольное приложение, но проблема в том, что при обычном запуске появляется окно консоли, если дважды щелкнуть исполняемый файл.

Поэтому мой вопрос таков:можно использовать cin / cout / cerr с родительским (вызывающим) окном консоли в приложении Win32?(Я хочу, чтобы это происходило только в том случае, если был передан параметр /c или /?, поэтому, если он вызывается без аргументов, то независимо от того, что он должен запускать графический интерфейс).

1 Ответ

0 голосов
/ 16 октября 2018

По умолчанию к приложению с графическим интерфейсом не подключено консольное окно.

Когда приложение с графическим интерфейсом запускается из процесса консоли, приложение с графическим интерфейсом может использовать AttachConsole() дляприсоединитесь к консоли.

Или, если приложение с графическим интерфейсом не запускается из процесса консоли, но все еще хочет использовать окно консоли, оно может создать собственное окно консоли, используя AllocConsole().

Как только приложение с графическим интерфейсом подключено к консоли, оно может использовать GetStdHandle(), чтобы получить дескрипторы для STDIN / STDOUT консоли, а затем перенаправить cin / cout использовать их (как это зависит от вашей конкретной реализации STL).

Или вы можете игнорировать cin / cout и просто использовать ReadConsole() и WriteConsole() непосредственно вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...