牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

VC快速强制退出程序方法

转载自:http://shashanzhao.com/archives/791.html

首先为什么要快速强制退出应用程序.

1.想快点结束程序,关闭自己,节约时间

2.正常退出时(或者关闭窗口时)崩溃,出来一个对话框

“XXX已停止工作,Windows 正在检查该问题的解决方案…”,一时找不到原因解决,总不能关闭的时候老看见这个框吧.

3.写的代码是给自己用的,不严格,所以如果正常退出,会调用一大堆析构函数,可能又涉及到多线程,必崩溃,这时就不得不考虑用快速简单粗暴的方法了.

4.快速退出程序没有多少影响,系统会帮你回收所有东西,所以不用担心内存泄露等, 唯一的影响就是你可能来不及保存一些窗口的配置,文件来不及保存等等了.

转到正题,目前有以下几个函数可以快速退出程序.

exit(0)  调用全局或者静态对象的析构函数然后退出
ExitProcess(0)  调用全局或者静态对象的析构函数然后退出
abort()  不调用全局或者静态对象的析构函数,
但在Release下弹出”XXX已停止工作,Windows 正在检查该问题的解决方案…”,
在Debug下会弹出”Debug Error!…”,不好用
TerminateProcess(GetCurrentProcess(), 0)    不调用全局或者静态对象的析构函数,干净利落的退出,程序员的大爱啊

注:

以上函数都会退出程序,忽略局部对象的析构和后面的代码.
就是此函数不会返回,直到程序终止.

总结就是如果碰到关闭时出现崩溃就使用TerminateProcess(GetCurrentProcess(), 0)来退出,哈哈,顿时清爽了.

 

测试环境:

Window 7,VC(VS/Visual Stdio)2010

posted on 2016-05-14 14:31 杨粼波 阅读(1078) 评论(1)  编辑 收藏 引用

评论

# re: VC快速强制退出程序方法 2016-05-14 14:34 杨粼波

TerminateProcess(GetCurrentProcess(), 0)
简单粗暴,有时候关闭程序也需要快速的关闭,收拾残局的事儿索性干脆就让系统去干了.  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理