Release版的控制台程序关闭时提示“已停止工作”
来源:互联网 发布:淘宝盗版商品是啥意思 编辑:程序博客网 时间:2024/06/05 08:14
编译环境:VS2013
问题描述:在写好程序后,调试无误,把发布方式从Debug改成了Release,再测试时,关闭的时候会卡顿,然后出现提示“XX.exe已停止工作”。
测试1:
1. 删除main中所有内容,只留下一个暂停函数,提示消失
2. 将声明内容加入,提示消失
3. 将输入内容部分加入,提示出现
初步分析:
通过测试,发现在非程序最后一个system(“pause”)处退出程序时就会出现提示。此时可以通过写一个安全退出选项,避免直接右上角来解决问题,但这样依然没有找到错误根源。
测试2:
1.删除头文件至只有iostream,提示消失
2.反复放出头文件,发现是某一个头文件导致的问题,在该头文件中声明了某个类的全局变量,删除该全局变量后,提示消失。
3.恢复该全局变量,删除其析构函数,提示消失
4. 恢复其析构函数,将其内容改为输出字符串,提示出现
5. 清空析构函数,改为赋值计算等语句,提示消失
分析:
全局变量在程序通过Windows关闭时,会调用其析构函数,析构函数如果进行io操作,会导致程序关闭错误,这就是发生的条件,不知其原因。至于为什么Debug版本不会出错,是因为Debug时是由编译器调用运行,而Release时是操作系统。
总结解决方法:
1. 不要在析构函数中写IO程序
2. 使用专门的退出功能安全退出程序
3. 使用MFC
0 0
- Release版的控制台程序关闭时提示“已停止工作”
- 关闭”xx程序已停止工作”提示窗口
- 关闭”xx程序已停止工作”提示窗口
- 关闭“**程序已停止”提示窗口
- Word 2007关闭时出现“已停止工作”的解决方法
- office2010:打开和关闭Word文档提示“Microsoft Word已停止工作”的解决办法
- office2013:打开和关闭Word文档提示“MicrosoftWord已停止工作”的解决办法
- windows7关闭"***已停止工作"和"您想发送关于此问题的详细信息吗"提示
- GeckoFX内核浏览器开发--关闭浏览器提示Plugin Container for Nightly 已停止工作解决方案
- Dreamweaver/Flash CS4安装后打开时提示此产品的许可已停止工作
- 打开会声会影时提示已停止工作怎么办?
- 在win7旗舰版64位系统中,qtp破解密钥时,程序运行马上提示已停止工作
- IE 11关闭后提示停止工作
- win7或win2008系统中,出现【已停止工作,联机检查解决方案并关闭该程序,关闭程序】解决方法!
- [原创] Microsoft Word 2010 关闭不正常(提示:已停止工作,Windows正在检查该问题的解决方案。。) 问题的解决
- android第一个程序运行时遇到的emulator-arm.exe已停止工作错误
- VS2008运行MFC程序,提示microsoft incremental linker已停止工作解决方法
- VS2008_win7 调试程序总会提示“Microsoft Incremental Linker已停止工作
- Oracle PL/SQL编程详解之三: PL/SQL流程控制语句
- 15.线程面试题三
- 题目1181:遍历链表
- 从蓝桥凑算式得到的全排列新发现
- 扔飞镖游戏
- Release版的控制台程序关闭时提示“已停止工作”
- 蓝桥杯练习 ALGO-132 算法训练 Maze
- leetcode 413
- Ubuntu创建快捷方式语法
- 无意中发现的sql server 存储过程加密破解方法
- node.js学习(二十三、mongodb命令)
- 从n个数中取出r个,打印出组合情况(递归版)
- Grid Layout
- Android开发 adb命令提示:Permission denied