У меня есть проект в Visual Studio 2008. Я хочу иметь два разных способа его запуска: либо в качестве обычного приложения Windows (поэтому он получает окно и я может делать графические материалы) или как консольное приложение (так, чтобы оно не имело окна и не выполняло графику). Есть ли способ настроить его, чтобы я мог использовать параметр командной строки или что-то, чтобы переключаться между этими двумя параметрами, когда я запускаю его? Есть ли способ настроить две разные конфигурации в одной и той же Visual Studio proejct, чтобы я мог построить один из них? Или мне нужно создать два полностью отдельных проекта: один для оконного приложения и один для консольного приложения.Создать «консольные» и «оконные» конфигурации в проекте Visual Studio
ответ
Да, вы можете использовать Configuration Manager для создания новых конфигураций. Параметры проекта могут быть (есть) разными для каждой конфигурации. Таким образом, вы можете создать две конфигурации, а в настройках проекта установить тип вывода «Приложение Windows» или «Консольное приложение».
Вот как вы это делаете: в раскрывающемся списке «Тип сборки» (тот, который по умолчанию имеет параметры отладки и выпуска), выберите «Configuration Manager». Добавьте новую конфигурацию и назовите ее «Debug (Console)» - при выбранной новой конфигурации перейдите к свойствам проекта и установите тип вывода в консольное приложение. Повторите, чтобы добавить конфигурацию Windows Forms.
так же, как у вас есть конфигурации Debug и Release по умолчанию, вы можете создать свой собственный. Щелкните правой кнопкой мыши проект, выберите «Диспетчер конфигурации», выберите раскрывающийся список «Конфигурация активного решения» и выберите «Создать ..». Введите такие имена, как «CmdLine Debug» и «Windowed Release» и т. Д., Удалите другие конфигурации. Теперь щелкните правой кнопкой мыши проект, выберите «Свойства» и отрегулируйте необходимые параметры для соответствующей конфигурации.
Tp, чтобы сделать вашу жизнь проще: поместите свойства, общие для всех конфигураций в листах свойств, и используйте эти листы повсюду. Таким образом, если вы хотите изменить опцию, применимую ко всем конфигурациям, вам нужно будет сделать это только один раз.
Возможно, вы захотите рассмотреть возможность разделения проекта на три.
- Сборка/dll (в зависимости от вашего языка), который выполняет работу.
- Консольное приложение.
- Приложение Windows.
Последние два являются двумя различными интерфейсами на сборке/dll, которые выполняют всю работу.
Рекомендованный (не хакерский) способ сделать это - разместить всю вашу логику в библиотеке классов, а затем создать два отдельных проекта для консоли и приложения Window. Затем добавьте библиотеку классов в качестве ссылки на эти проекты, как это предложил Крис.
У вас не может быть ни одного приложения, которое действует как консоль и приложение Window. Причина в основном заключается в том, что приложение Console and Window отличается на двоичном уровне разными флагами в заголовке PE.
Есть некоторые хаки, которые позволяют вам подделывать такое поведение с помощью функций Windows API (AttachConsole
и CreateConsole
).Более подробную информацию см
Но знайте, что там может быть в поведении регулярных консольного приложения или окна certain differences.
+ 1 для CreateConsole & AttachConsole! – user353297
- 1. Ошибка конфигурации конфигурации Visual Studio
- 2. визуальная студия, создающая оконные окна vb в проекте C++?
- 3. Консольные команды для создания проекта в Visual Studio
- 4. Консольные бритвенные кронштейны не складываются в соответствии с Visual Studio
- 5. Конфигурации внешних проектов в Visual Studio 2012
- 6. Visual Studio Compiler Параметры конфигурации
- 7. Как можно создать зависимость проекта Visual Studio 2010 от конфигурации?
- 8. Оконные и оконные приложения вместе
- 9. Ошибка конфигурации конфигурации Visual Studio 2015
- 10. Конфигурации проектов Visual Studio 2013 SSDT
- 11. Создать папку Writable в проекте Visual Studio 2010 Web-Setup
- 12. В проекте установки Visual Studio, как мне создать сценарий удаления?
- 13. Создать асимметричный ключ в проекте Visual Studio 2012 Sql Server
- 14. Как создать свойства в проекте моделирования Visual Studio 2010?
- 15. Создать список всех переменных, используемых в проекте Visual Studio
- 16. Определение конфигурации решений (Visual Studio)
- 17. Visual Studio местоположение конфигурации расширения
- 18. Visual Studio | Ошибка конфигурации ASP.NET
- 19. Использование конфигурации пользовательской сборки в visual studio
- 20. Visual Studio: обычная и настраиваемая часть в файле конфигурации
- 21. Entity framework 7, visual studio 2015, консольные команды не работают
- 22. Конфигурации сборки Visual Studio - предотвращение перестроения
- 23. Per-programmer #define в проекте Visual Studio
- 24. Ошибка Visual Studio C++ 2010 в проекте
- 25. Прочитать текстовый документ в проекте visual studio
- 26. Сомнения в проекте установки Visual Studio 2010
- 27. Как создать CMake проект Visual Studio, содержащий только файлы конфигурации?
- 28. Файл конфигурации Debug XML в Visual Studio
- 29. Форма WPF в проекте надстройки Visual Studio
- 30. Настройка веб-конфигурации в Visual studio 2013
Нет, к сожалению, это не работает. Тип вывода, т. Е. Создается ли приложение «Консоль» или «Окно», - это параметр проекта, на который не влияет активная конфигурация. –
ха? Я думал, что свойство-> linker-> system-> subsystem указывает это? – stijn
Извините, так как языка программирования не было, я принимал проекты .NET. Это может быть иначе для C++, но я сомневаюсь, что это связано с тем, что приложение Windows должно иметь WinMain и цикл сообщений, тогда как консольное приложение этого не делает. –