Как показать и вывести на консоль (cmd) в Windows (C ++ WinApi) в разделе `SUBSYSTEM: WINDOWS` - PullRequest
0 голосов
/ 17 октября 2018

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

Есть ли способ запрограммировать мое приложение WinApi C ++ таким образом, чтобы я мог выводить на консоль, как это обычно делается при использовании опции компоновщика SUBSYSTEM:CONSOLE?Другими словами, у меня может быть открытое окно с моими WinMain и WndProc и т. Д., Но я также хотел бы сделать std::cout, std::cin и std::wcout .. Хороший вариант использования для этого, будетиспользовать консоль для ведения журналов и окно в качестве основного приложения.

Было бы неплохо использовать вместо него std::system() и запустить cmd из этого и затем вывести?Я так не думаю, но, конечно, я не знаю.

Windows 8.1, x86_64, MSVS 2017.

Ответы [ 2 ]

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

Используйте AttachConsole для подключения к существующей консоли или AllocConsole для создания новой консоли.Затем при необходимости перенаправьте cin / cout на эту консоль (в зависимости от требований конкретной реализации вашего компилятора).Или просто используйте ReadConsole / WriteConsole.

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

Да, установите для подсистемы WINDOWS и / ENTRY (точка входа) на WinMainCRTStartup (или wWinMainCRTStartup, если вы используете Unicode).Вы даже можете установить его только для конфигурации отладки, поэтому консоль не появится для версии.

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