配置从 Debug 更改为 Release 后,C++ exit(0) 不再立即存在我的程序

标签 c++ visual-studio visual-studio-2013 exit

通常 std::exit(int)将立即终止你的程序,但出于某种原因,我放在任何地方 exit(0) ,而不是立即退出,它首先在控制台上询问“按任意键继续...”。

即使我抛出 exit(0)作为 main() 中的第一行,它仍然提示我在退出前按一个键。

我唯一做的就是将我的项目更改为在 Release模式下编译,而不是在 Visual Studio 中进行调试, 通常在调试中,我会看到项目运行为:
C:\User\<Username>\<File path>\<Project name>\Debug\<Project name>.exe
然而,在 Release模式下,它运行为:
C:\Windows\system32\cmd.exe

我不知道这是否有什么不同..
有没有办法让它在 Release模式下调用 exit() 等命令后立即终止?

最佳答案

这不是唯一发生变化的事情。您可能还使用“Ctrl+F5”而不是“F5”来运行您的程序。或者在 Debug模式下启用的调试检查用于检测崩溃或程序中不再检测到的某些内容。或者其他一些可能的更改。

在任何情况下,直接运行您的可执行文件(例如从 Windows 资源管理器或命令提示符)并查看“按任意键继续...”不会出现在那里。您也可以仅使用“F5”(默认情况下)运行它,尽管这种替代方法有其他副作用。

我的建议是不要担心最后的“按...”。这只是 VS 向您伸出援助之手,不会在您发布/安装/使用最终应用程序时发生。

关于配置从 Debug 更改为 Release 后,C++ exit(0) 不再立即存在我的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199694/

相关文章:

c# - Excel VSTO 加载项部署错误

c++ - 交换 float 和 double 的 "endianness"

c++ - GestureRecognizer 在 WP Direct3D App 中抛出异常

c++ - #if 预处理器指令可以嵌套在 C++ 中吗?

c# - 如何在鼠标移动时为 C# 中的所有按钮设置手形光标?

c# - 编写 Visual Studio 插件?

c++ - int64_t 和类似类型是否有可移植的文字后缀?

c++ - 预编译头 - 选择文件

c# - 在 Visual Studio 中运行 Selenium 测试时出现 PNUnit 错误消息

.net - Visual Studio 2013 浏览器链接不显示其他选项,但刷新