转自: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 + +运行期没有机会进行清除,可能会造成泄露。