C/C++控制台安全退出,2018年最新方法

原创 2018年04月16日 23:01:37

非正常退出:


退出的结果:





bool g_bExit = false;
HANDLE g_hEvent = INVALID_HANDLE_VALUE;

BOOL CALLBACK CosonleHandler(DWORD ev)
{
	BOOL bRet = FALSE;
	switch (ev)
	{
		// the user wants to exit. 
	case CTRL_CLOSE_EVENT:
		// Handle the CTRL-C signal. 
	case CTRL_C_EVENT:
	case CTRL_SHUTDOWN_EVENT:
	case CTRL_LOGOFF_EVENT:
		g_bExit = true;
		// 停住,让主线程执行清理任务
		WaitForSingleObject(g_hEvent, -1);
		// 注意事件在这里清理
		CloseHandle(g_hEvent);
		bRet = TRUE;
		break;
	default:
		break;
	}
	return bRet;
}

int main()
{
	SetConsoleCtrlHandler(CosonleHandler, TRUE);
	g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);

	// 初始化

	do
	{
		// 模拟任务执行
		printf(".");
		Sleep(1000);
	} while (!g_bExit);

	// 主程序清理

	SetEvent(g_hEvent);
	return 0;
}

有问题,在下方留言。


2018年最新传智播客c++就业班24期

该视频收集于网络 目前是全网最新的 传智播客c++就业班24期 推荐给大家,试看地址 链接:https://pan.baidu.com/s/1nwbgzkX 密码:4l32 ...
  • qq_36771421
  • qq_36771421
  • 2018-01-18 11:28:07
  • 849

2018年传智播客c++24期就业班

最近买了传智播客最新一期的c++视频,看了感觉不错,推荐给大家,地址链接:https://pan.baidu.com/s/1nwbgzkX 密码:4l32...
  • qq_35170212
  • qq_35170212
  • 2018-01-12 00:18:40
  • 897

2018年读书笔记

2018年读书笔记 新的一年即将开始,读书计划也将全面开启,所选择书籍讲围绕学习人类发展进化、科技的未来、商业转变等等。读书让人在智力上得到充实,书能让你完全了解一个论题,能让你比现在的大多数媒介更...
  • loongshawn
  • loongshawn
  • 2018-01-28 14:32:02
  • 302

C++捕捉关闭控制台应用程序事件

#include #include bool ctrlhandler( DWORD fdwctrltype ) { switch( fdwctrltype ) { ...
  • zx3517288
  • zx3517288
  • 2015-09-19 17:35:40
  • 592

2018年4月1日 蓝桥杯 C/C++B组答案 明码

标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存...
  • qq_40507857
  • qq_40507857
  • 2018-04-01 23:35:19
  • 210

C++控制台程序的关闭事件

C++控制台程序虽然没有关闭的事件处理,但是其也有相应的关闭事件回调函数的注册机制       如果你不关心控制台是如何关闭的,而想在关闭时做一定的处理,则可以通过atexit函数,此函数接收一个不...
  • hzqhbc
  • hzqhbc
  • 2012-03-19 16:29:15
  • 5828

2018年这些技术可能会很火

1. ARCore与ARKit   Google增强现实(AR)工具“ARCore”,Apple产品“ARKit” 。ARCore将利用Java,OpenGL和Unreal and Unity 3D...
  • ShareUs
  • ShareUs
  • 2017-12-04 18:48:51
  • 1947

2018年,其实你可以让自己更幸运

2018年,我的第一个愿望:所有在奋斗路上的伙伴们,都有属于自己的收获。而我更加希望众多学员们能那一块“铂金砖”去敲开心仪企业大门! 我先说一下这个“铂金砖”,如何制作高水平简历?问题隐隐透露...
  • q454684431
  • q454684431
  • 2017-12-26 21:42:49
  • 858

Gartner:2018年全球IT支出将突破3.7万亿美元 | 《2017年度网络空间安全报告》发布

每一个企业级的人  都置顶了 中国软件网中国软件网  为你带来最新鲜的行业干货小编点评数据处理的时效性很重要所以存算一体是我们未来的发展趋势你觉得呢?趋势洞察金海:数据处理的时效性是大数据时代面临的最...
  • Z1Y492Vn3ZYD9et3B06
  • Z1Y492Vn3ZYD9et3B06
  • 2018-01-18 00:00:00
  • 483

2018年第九届蓝桥杯大赛软件类省赛C/C++B组参赛感想

    本人大二,学校非985,非211,非双一流,普通一本编程小白一枚,今年第一次入蓝桥杯的坑,比赛之后颇有感触,今日写下某些我会做的题解,还不知答案和个人成绩,所以也不敢妄言,大佬勿喷。     ...
  • sinat_39968978
  • sinat_39968978
  • 2018-04-02 19:52:39
  • 255
收藏助手
不良信息举报
您举报文章:C/C++控制台安全退出,2018年最新方法
举报原因:
原因补充:

(最多只允许输入30个字)