转自:http://hi.baidu.com/uhxqchmbfkgmpqr/item/abcee44303221aabde2a9fe2
用PostQuitMessage的特别多,不过好象不能结束进程,
而ExitProcess立刻就能结束进程,为什么用这个不多呢?
这两个函数还有那些不呢?
答案:
PostQuitMessage仅仅让消息循环退出,多数情况下消息循环退出后进程也该退出了。使用这种方式能让系统处理完所有的消息,并有机会释放各种资源。
ExitProcess会造成进程直接退出,有可能造成资源泄露。
同意楼上。
具体说开:
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
只要从消息队列中取出消息的message字段不为WM_QUIT(其值为0x0012),GetMessage就传回一个非零值。WM_QUIT消息将导致GetMessage传回0,使循环退出。程序还可以做些清理工作。
但ExitProcess函数强制进程在现场终止运行,C/C + +运行期没有机会进行清除,可能会造成泄露。
本文探讨了Windows编程中PostQuitMessage与ExitProcess两个函数的不同之处。前者用于优雅地退出消息循环,允许资源得到释放;后者则直接终止进程,可能导致资源泄露。文章通过示例代码说明了这两种方式如何被应用。
7108

被折叠的 条评论
为什么被折叠?



