Держит cmd.exe открытым в Vista

Я пишу консольные программы на C++. После компиляции, когда я запускаю программу из файлового браузера, cmd.exe автоматически закрывается, так что я не вижу вывод своих программ.

Единственный способ обойти это, я нашел, это запустить программу изнутри cmd.exe

Есть ли способ сохранить cmd.exe открытым после завершения работы программы?

Есть ли настройка, которую я могу где-то изменить? Я не хочу запускать пакетный скрипт с cmd.exe /K

Спасибо!

[Edit] Не знаю, имеет ли это значение, но я на Vista x64

5 ответов

Решение

Попросите ваше приложение запросить нажатие клавиши перед выходом - это самое простое решение!

Вы можете настроить ярлык с ключом /K при запуске cmd.exe, чтобы он не прерывался после выполнения данной команды:

 cmd.exe /K YourProgram.exe

Я всегда был фанатом простого создания командного файла, который вызывает вашу программу, а затем вызывает паузу

Prog.exe Пауза

Это даст приятную подсказку "Нажмите любую клавишу для продолжения...", она проста и не требует модификации программы.

Как последняя строка вашего main() функция, вы можете добавить эту строку:

system("PAUSE");

Кроме того, убедитесь, что #include <stdlib.h> объявить system() функция. Это заставит консоль приостановиться. Однако, если ваша программа запускается изнутри cmd.exeЭто все равно будет приостановлено, что может быть нежелательно.

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

Лучше всего установить точку останова прямо перед завершением вашей программы.

Затем вы можете развернуть свой exe, и вы можете быть уверены, что не забудете удалить запрос на ввод. Это также лучше, чем запрашивать ввод, потому что требуется много времени, чтобы закомментировать и вернуться к запросу ввода.

Я думаю, что лучше не запрашивать ввод, а вместо этого запускать вашу программу из запущенной командной строки.

Другие вопросы по тегам