万能的退出函数exit VS ExitProcess
2017-08-08 09:53
771 查看
exit和ExitProcess有共同的特点就是可以在什么任何情况下(姑且这样认为,其实ExitProcess是做不到的)
退出程序的所有线程,进而结束程序的进程。
exit是c函数,调用方式如下:
exit(1);
ExitProcess是api函数,调用方式如下:
ExitProcess(0);
作为使用者 我们基本可以认为exit是完美的,在我自己的使用中还没发现exit的bug。
然而ExitProcess作为api函数却bug多多,不得不令人失望。
下面列举两个ExitProcess在使用中存在的bug:
一、如果调用了公用对话框比如CFiledlg之类的,就不可以再用ExitProcess退出程序了,
否则将导致内存的非法访问!用exit却可以正常退出。
二、如果在程序中用ShellExecute等启动了另一个程序,那么就不可以再用ExitProcess退出程序了,否则将导致内存的非法访问!用exit却可以正常退出。
在此做一总结:
如果用vc写出程序,那么要用ExitProcess的地方都用exit替换。
当然如果是用vb之类的语言,由于没有exit这个函数,在迫不得已时就只好用ExitProcess。
上面是本人在写程序时总结的一点经验,在此做一分享,如有说的不对的,就请大家纠正了.
退出程序的所有线程,进而结束程序的进程。
exit是c函数,调用方式如下:
exit(1);
ExitProcess是api函数,调用方式如下:
ExitProcess(0);
作为使用者 我们基本可以认为exit是完美的,在我自己的使用中还没发现exit的bug。
然而ExitProcess作为api函数却bug多多,不得不令人失望。
下面列举两个ExitProcess在使用中存在的bug:
一、如果调用了公用对话框比如CFiledlg之类的,就不可以再用ExitProcess退出程序了,
否则将导致内存的非法访问!用exit却可以正常退出。
二、如果在程序中用ShellExecute等启动了另一个程序,那么就不可以再用ExitProcess退出程序了,否则将导致内存的非法访问!用exit却可以正常退出。
在此做一总结:
如果用vc写出程序,那么要用ExitProcess的地方都用exit替换。
当然如果是用vb之类的语言,由于没有exit这个函数,在迫不得已时就只好用ExitProcess。
上面是本人在写程序时总结的一点经验,在此做一分享,如有说的不对的,就请大家纠正了.
相关文章推荐
- (经验分享)万能的退出函数exit VS ExitProcess
- python的两种退出方式 os._exit() vs sys.exit()
- return 与 exit()的区别--return退出本函数,exit()退出整个程序
- 进程退出(exit)处理函数 atexit
- 进程,函数退出exit和_exit
- return 与 exit()的区别--return退出本函数,exit()退出整个程序
- XP 安装后使用vc2010,进入类视图后,点击一个函数,后vs报错退出问题
- return 与 exit()的区别--return退出本函数,exit()退出整个程序
- linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数
- return 与 exit()的区别--return退出本函数,exit()退出整个程序
- return 与 exit()的区别--return退出本函数,exit()退出整个程序
- 程序退出函数---exit,_exit,_Exit,abrot
- 进程退出函数exit()
- exit,return ,_exit退出函数关系
- LINUX退出当前进程——比较return、exit()和_exit()函数
- 2018_蓝桥_exit(0)函数_退出函数总结
- exit() 函数输出一条消息,并退出当前脚本。 该函数是 die() 函数的别名。
- linux系统编程之进程(四):进程退出exit,_exit区别即atexit函数
- ExitWindowsEX()函数用来退出、重启或注销系统
- 程序代码中退出函数exit()与返回函数return ()的区别