我正在通过编译C程序来尝试Visual Studio 2010。在“DOS”命令窗口中显示解决方案后,窗口立即关闭。在Visual Studio 2008中,可以按任意键获取消息以继续并按下某个键关闭命令提示符窗口。如何在2010年设置此行为?
答案 0 :(得分:19)
经过一番谷歌搜索后,我找到了this解决方案,不涉及修改代码。它包含一个涉及修改.vcxproj文件的解决方法。
要在Microsoft Visual C ++ 2010 Express中执行此操作(我假设它与Visual Studio 2010类似),请打开项目并导航到以下菜单:
Project->$YOURPROJECTNAME Properties...
->Configuration Properties
->Linker
->System->SubSystem
然后使用下拉列表选择控制台(/ SUBSYSTEM:CONSOLE)并应用更改。
“无需调试即可启动”现在应该做正确的事。
答案 1 :(得分:3)
发生这种情况的原因是因为现在在VS 2010中,默认情况下可以创建一个空的通用C ++项目,而无需通过向导。这导致VS 2010没有正确设置Console (/SUBSYSTEM:CONSOLE)
标志,所以VS2010不知道它是一个控制台应用程序,它会发送通常的“按任意键......”提示。
如果从“新建项目”菜单中创建控制台应用程序项目类型,则不会发生此问题。
但是,您可以通过项目/设置自己和其他许多人设置此标志,因为上面的帖子已正确回答!
答案 2 :(得分:2)
这很正常。 “DOS”控制台窗口附加到您的程序,并且应该在程序完成时退出。如果您希望它保持打开状态,则需要向程序添加代码以使其保持打开状态。您所要做的就是添加一个print语句,然后在程序结束时输入语句。
答案 3 :(得分:2)
如果您希望它保持打开状态,则需要在程序中添加代码。喜欢它
#include <stdio.h>
#include <stdlib.h>
... main(...)
{
your codes
.
.
.
system("pause");
}
如果您添加此代码,则黑屏会保持打开状态。 “系统(”暂停“)”在stdlib.h头文件中。
答案 4 :(得分:1)
FWIW,“启动无调试”命令在VS2010中的工作方式与以前的Visual Studio版本中的方式完全相同(也就是说,对于控制台项目,当进程以“按任意键”终止时控制台保持打开状态继续......“提示”。
那么,究竟你是如何让VS2010运行你的程序的呢?如果您使用的是“Ctrl-F5”快捷键,是否可以在“选项/环境/键盘”中验证Ctrl-F5是否绑定到Debug.StartWithoutDebugging
?
另外,您可以尝试使用菜单运行程序(“Debug / Start Without Debugging”)?
答案 5 :(得分:1)
将“无需调试启动”引入“调试”菜单...
工具&gt;&gt;自定义&gt;&gt;命令(Tab)&gt;&gt;菜单栏(下拉列表)&gt;&gt;调试(控制选项)&gt;&gt;添加命令(按钮)&gt;&gt;调试(类别列表)&gt;&gt;无需调试即可启动
使用“无需调试启动”将允许VS2010在退出前显示“按任意键继续”短语。
答案 6 :(得分:0)
如果在没有调试器的情况下启动应用程序(“不启动调试”),控制台窗口将保持打开状态,直到您按下某个键。
答案 7 :(得分:0)
您可以添加此功能并在从main()返回之前调用它:
void keep_window_open()
{
// clear buffer
fflush(stdin);
printf("Please enter a character to exit\n");
char ch;
ch = getchar();
return;
}
我在Bjarne Stroustrup网站的实用程序头文件中使用C ++版本进行了修改: http://www.stroustrup.com/Programming/std_lib_facilities.h