我的 Visual Studio 2013 控制台应用程序在退出前突然开始导致访问冲突错误。弹出错误窗口告诉我“访问冲突执行位置 xxx”,它在 VC 库函数 _callthreadstartex 中中断。如果我注释掉我添加的行:
cout << "\n回车完成\n";
std::cin.get();
有用。此外,当我从命令窗口而不是从 Visual Studio 调试环境运行它时,它可以工作。(我正在使用的项目文件不包含发布配置——只有调试版本。)
该程序的其余部分是来自一个大型开源包的示例,此处无法列出。操作系统是 Windows 7,新安装在旧计算机上。
虽然我知道这种类型的错误通常是神秘的和间歇性的,并且可能与 cin.get() 根本没有任何关系,但我可以排除任何事情吗?由于我添加的唯一内容是标准库调用,因此我不太可能出现编程错误。我正在使用的包非常复杂和脆弱,但我不知道从哪里开始使用我提供的错误信息来追踪问题。这可能是不需要代码修复的操作系统设置问题吗?这是一个超出我专业知识的线程问题吗?