我在Visual Studio 2008中有一个项目。我想要有两种不同的运行方式 - 既可以作为常规的Windows应用程序(所以它会得到一个窗口,而我可以做图形的东西)或者作为一个控制台应用程序(这样它就没有窗口,也不会做图形)。有没有办法设置它,以便我可以使用命令行选项或某些东西来切换这两个选项时,我运行它?有没有办法在同一个Visual Studio项目中设置两个不同的配置,以便我可以构建其中一个?或者我需要创建两个完全独立的项目,一个用于窗口应用程序,一个用于控制台应用程序。在Visual Studio项目中创建“控制台”和“窗口”配置
回答
是的,您可以使用Configuration Manager创建新的配置。每个配置的项目设置可能不同。因此,您可以创建两个配置,并在项目设置中将输出类型设置为“Windows应用程序”或“控制台应用程序”。
这是如何操作的:在Build Type下拉菜单中(默认为Debug and Release选项),选择“Configuration Manager”。添加一个新配置并将其命名为“调试(控制台)” - 选择此新配置后,转至项目属性并将输出类型设置为控制台应用程序。重复添加Windows窗体配置。
就像您拥有默认的调试和发布配置一样,您可以创建自己的配置。 右键单击该项目,选择“配置管理器”,单击“活动解决方案配置”下拉框并选择“新建..”。输入“CmdLine Debug”和“Windowed Release”等名称,删除其他配置。现在右键单击项目,选择“属性”,然后调整适当配置所需的设置。
Tp让您的生活更轻松:将所有配置共有的属性放在属性表中,并将这些表放置在任何地方。这样,如果您想更改适用于所有配置的opion,则只需执行一次。
您可能需要考虑将项目拆分为三个。
- 一个程序集/ DLL(取决于你的语言),做的工作。
- 控制台应用程序。
- Windows应用程序。
后两个只是assembly/dll上完成所有工作的两个不同接口。
推荐的(非哈希)方法是将所有逻辑放在类库中,然后为控制台和窗口应用程序创建两个单独的项目。然后按照Chris的建议,将类库添加为这些项目的参考。
您不能拥有一个既可用作控制台和窗口应用程序的单个应用程序。原因基本上是,控制台和窗口应用程序在PE标题中具有不同标志的二进制级别上不同。
虽然有一些黑客可以使用Windows API函数(AttachConsole
和CreateConsole
)来伪造这样的行为。有关详情请参阅
但要注意,有可能是行为规则的控制台或窗口应用certain differences。
+ 1 for CreateConsole&AttachConsole! – user353297 2010-07-12 20:59:02
- 1. Visual Studio控制台窗口
- 2. Visual Studio控制台窗口位置
- 3. 在Visual Studio for Mac中创建C/C++控制台项目?
- 4. Visual Studio中的控制台cpp项目
- 5. 如何在使用Visual Studio 2010的Win32项目中隐藏控制台窗口
- 6. Visual Studio未能创建C++控制台项目
- 7. 控制台项目中的WPF窗口?
- 8. 在Visual Studio 2012控制台应用程序中创建一个窗口?
- 9. 控制台命令在Visual Studio中构建项目
- 10. 如何一劳永逸配置Visual Studio控制台窗口的设置
- 11. Visual Studio Express - 控制台窗口作为选项卡
- 12. 的Visual Studio:如何启动没有控制台窗口项目坡平了
- 13. 创建控制台,如进度窗口
- 14. SQL Server Management Studio控制台窗口
- 15. Eclipse中的Visual Studio风格输出控制台窗口
- 16. 如何防止在Visual Studio下显示控制台窗口?
- 17. 保持控制台窗口打开在Visual Studio(C)
- 18. 在没有可见控制台窗口的窗口中创建后台进程
- 19. 控制PowerShell控制台窗口位置
- 20. Visual Studio 2005中的空项目和win32控制台项目之间的差异
- 21. 按平台/配置更改Visual Studio 2008项目配置
- 22. 在Visual Studio中创建Windows Installer项目
- 23. 在Visual Studio中自动创建项目
- 24. 在Visual Studio 2010中创建OpenCL项目
- 25. C#Visual Studio控制台串行接口
- 26. 从WinAPI窗口创建控制台窗口?
- 27. Microsoft Visual C++控制台窗口消失
- 28. 在已打开的项目窗口中创建Visual Studio代码打开文件?
- 29. 如何自定义Visual Studio控制台调试窗口?
- 30. 如何在控制台项目中使用Main()启动窗口。
不,不幸的是,它不会那样工作。输出类型,即创建控制台还是窗口应用程序是不受活动配置影响的项目设置。 – 2010-07-12 20:24:30
呵呵?我以为properties-> linker-> system-> subsystem指定了这个? – stijn 2010-07-12 20:28:27
对不起,因为没有编程语言,我假设.NET项目。对C++来说可能会有所不同,但是我怀疑它是什么,基本上是因为Windows应用程序必须具有WinMain和消息循环,而控制台应用程序则不需要。 – 2010-07-12 20:32:24