我试着通过编译C程序来试用Visual Studio 2010。在“DOS”命令窗口中显示解决方案后,该窗口立即关闭。在Visual Studio 2008中,获取消息的任何按键都可以继续,按下一个按键将关闭命令提示符窗口。我如何在2010年设置这种行为?程序结束后退出Visual Studio 2010
回答
经过一番Google搜索,我发现this解决方案不涉及修改您的代码。它包含一个解决方法,涉及修改.vcxproj文件。
为了从Microsoft Visual C++ 2010 Express中做到这一点(我假设它是Visual Studio 2010的相似),打开您的项目并导航到以下菜单:
Project->$YOURPROJECTNAME Properties...
->Configuration Properties
->Linker
->System->SubSystem
然后使用下拉菜单选择控制台(/ SUBSYSTEM:CONSOLE)并应用更改。
“没有调试就开始”应该现在就做正确的事情。
很好。这工作非常好。我也给你一个投票。我正在使用Express版本。 – yCalleecharan 2010-07-06 15:07:39
非常感谢您在此处报告此错误。 – yCalleecharan 2010-07-06 15:18:14
这对我很好,谢谢。有没有办法自动将此解决方案应用于所有项目? – petric 2014-09-03 14:29:39
这是正常的。 “DOS”控制台窗口附加到您的程序,并应该在您的程序完成时退出。如果您希望保持打开状态,则需要将代码添加到程序中以保持打开状态。您只需添加一个打印语句,然后将语句输入到程序的最后。
好的,谢谢...代码接受来自键盘的输入。 – yCalleecharan 2010-04-14 18:18:18
如果您在没有调试器的情况下启动应用程序(“无需调试即可启动”),控制台窗口将保持打开状态,直到您按下某个键。
嗯......其实我做到了。我知道这也适用于Visual Studio 2008,这个“命令”就是我用来运行我的程序的。所以我对2010年的这种不同行为感到有些惊讶。 – yCalleecharan 2010-04-14 18:29:01
我可以确认在2010年使用“无需调试就开始”不会在程序退出后保持控制台窗口打开。 – yCalleecharan 2010-04-14 18:40:36
现在,这很奇怪。我的Visual Studio没有相同的行为... – 2010-04-14 19:27:44
您可以添加此功能,并调用它直接从主()返回前:在了Bjarne Stroustrup的网站
void keep_window_open()
{
// clear buffer
fflush(stdin);
printf("Please enter a character to exit\n");
char ch;
ch = getchar();
return;
}
我适应它从一个C++版本的工具头文件: http://www.stroustrup.com/Programming/std_lib_facilities.h
非常感谢。为了避免编译错误,我必须在开始括号后面{在函数定义之后移动“char ch”行。我认为“fflush(stdin)”这一行是C++代码,并且在C中不起作用。 – yCalleecharan 2010-04-14 20:33:35
根据c FAQ: http://c-faq.com/stdio/stdinflush,您是对的。 html fflush仅为输出流定义。 该FAQ条目的链接讨论了如何刷新输入: http://c-faq.com/stdio/stdinflush2.html – Darel 2010-04-14 21:17:34
感谢您的链接。 – yCalleecharan 2010-04-14 21:32:44
FWIW,“无需调试即可开始”命令在VS2010中的工作方式与之前Visual Studio版本中的方式完全相同(也就是说,对于控制台项目,当进程终止并按“任意键继续”时,控制台仍保持打开状态。 “提示)。
那么,究竟如何让VS2010运行你的程序?如果您使用的是“Ctrl-F5”快捷键,您可以在“选项/环境/键盘”中确认Ctrl-F5绑定到Debug.StartWithoutDebugging
吗?
此外,你可以尝试运行你的程序使用菜单(“调试/开始无调试”)?
谢谢。首先编译文件,然后构建它,然后使用Debug> start without debugging。按照您的说法,我已经分配了“Ctrl-F5”,但我得到了相同的行为。我承认这很奇怪,因为Visual Studio 2005可以正常工作。 – yCalleecharan 2010-04-14 21:31:02
@yCalleecharan:有趣 - 我不知道一个控制这个的设置。 – 2010-04-14 21:42:57
是的,很难相信这种奇怪的行为。 – yCalleecharan 2010-04-15 06:57:41
发生这种情况的原因是因为现在在VS 2010中可以默认创建一个空的通用C++项目,而无需通过该向导。这导致VS 2010没有正确设置Console (/SUBSYSTEM:CONSOLE)
标志,因此VS2010不知道它是一个控制台应用程序,它将发送通常的“按任意键...”提示符。
如果您从新建项目菜单中创建控制台应用程序项目类型,则不会出现此问题。
但是你可以通过Project/Settings来设置你自己和其他很多人的标志,因为上面的帖子已经正确回答了!
带来 “开始没有调试” 的调试菜单...
工具>>定制>>命令(TAB)>>菜单栏(下拉列表)>>调试(控制选项)>>添加命令(按钮)>>调试(类别列表)>>无调试开始
使用“无调试开始”将允许VS2010在退出前显示“按任意键继续”短语。
- 1. visual studio 2010安装程序
- 2. 如何防止Visual Studio 2010中的线程结束通知?
- 3. 如何停止任务运行终端程序在Visual Studio代码结束后自动退出?
- 4. Visual Studio 2010 Pro,在应用程序关闭时不会结束调试模式
- 5. 无法在Visual Studio调试应用程序在2010年后安装Visual Studio 2013
- 6. Visual Studio 2010的安装程序
- 7. Visual Studio 2010 Web应用程序部署
- 8. 应用程序图标Visual Studio 2010 C++
- 9. Visual Studio 2010程序集参考
- 10. Visual Studio 2010修补程序[修复]
- 11. Visual Studio 2010 Shell程序包安装
- 12. visual studio 2010无法启动程序.dll
- 13. Visual Studio 2010的安装程序
- 14. “嵌套”Visual Studio 2010 Web应用程序
- 15. Visual Studio 2010 ReportViewer程序集引用
- 16. 进程结束等待退出
- 17. 使用Visual Studio 2010安装MongoDB Visual Studio安装程序
- 18. Visual Studio 2010的Visual Studio 2010主题?
- 19. 程序结束时出现循环问题,无法退出
- 20. 为什么visual studio在应用程序退出时退出调试器?
- 21. Visual Basic程序退出按钮
- 22. 退出或程序结束时执行函数
- 23. 当调试x64应用程序时,Visual Studio 2010会冻结
- 24. 退出循环结束
- 25. Visual Studio 2010 Ultimate Profiler教程?
- 26. 为Visual Studio 2010的编程
- 27. 控制台应用程序在Visual Studio立刻退出
- 28. WebsiteSpark&Visual Studio 2010
- 29. Microsoft visual studio 2010
- 30. Visual Studio 2010 Intellisense
VS2010没有什么不同,在程序结束时按Ctrl + F5调用“按任意键”提示。 – 2010-04-14 18:35:11
是的,我知道这个“没有调试就开始”的快捷方式,但在我的情况下,控制台窗口立即被解散。这很奇怪。 – yCalleecharan 2010-04-14 18:41:54