我正在使用Visual Studio 2010开发C++软件.由于这个软件应该在没有人工交互的服务器上运行,我真的需要摆脱这个"program.exe已经停止工作"的窗口如果出现错误,会在发布版本中弹出.我只是希望程序终止(也许还会给出错误消息,但不一定)并且不会让它等待有人点击"关闭程序"按钮.我必须提到我的机器上有64位Windows 7 Professional.
我读过几件事,比如:
_set_abort_behavior函数.这解决了调用abort()时的情况,但对于像"向量下标超出范围"这样的错误则不是这种情况.
我知道我可以通过异常处理解决其中的一些错误,但并非所有错误都是例外,因此这不能解决我的整个问题.
我还读过一些关于Dr.Watson调试器的内容,该调试器应该默默地终止应用程序,但我的印象是这个调试器不适用于Windows 7. Plus我不知道这个调试器是否可以解决我的问题在发布模式下......
我没有发现在我的整个机器上禁用错误报告是一个优雅的选择,虽然我读到这也可能是一个替代方案(不是我想要的那个).
我怎么能在Visual Studio中这样做?我可以使用任何设置吗?
是否有可能在Visual Studio中转换异常中的所有错误,以便我可以使用异常处理机制解决问题?(如果这是一个愚蠢的问题,请宽容)
我期待着你的建议.非常感谢您的时间!
最好的问候,科妮莉亚
我们有一个遗留构建基础架构,用于夜间构建(在Perl中实现),用于编译,链接和单元测试我们的应用程序/插件.在Windows上,如果单元测试过程崩溃,则会弹出一个"锁定"构建场的模态对话框.
是否有一种方法(win32 API调用,系统配置,env var,某些东西......)来禁用此行为以使子进程在崩溃时立即终止,而没有模态对话框和非零退出状态?
谢谢,--DD
PS:我们在Windows上使用SEC(结构化异常处理)进行编译,以便能够使用catch(...)"捕获"崩溃,因此在大多数情况下避免这个问题,但有时这还不够,因为当然有些崩溃不可恢复(例如,如果它们损坏了堆栈).