热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++控制台关闭时触发事件

某些时候我们在控制台写demo很方便,但有时候要在控制台结束时做些事情比如前两天在学习x264保存mp4,数据是写进去了,可结束后mp4

某些时候 我们 在 控制台 写demo 很方便,但有时候要 在控制台结束时做些事情

比如前两天在 学习x264 保存mp4,数据是写进去了,可结束后  mp4文件打不开,播放不了,

最后  找资料 说 mp4v2 要最后执行close,否则文件损坏,于是  尝试  在控制台结束时  触发 close

尼玛,终于能播放了。

bool Ctrlhandler( DWORD fdwctrltype )
{switch( fdwctrltype ){// handle the ctrl-c signal.case CTRL_C_EVENT:printf( "ctrl-c event\n\n" );return( true );// ctrl-close: confirm that the user wants to exit.case CTRL_CLOSE_EVENT://控制台结束时 要做的事情Close_Exit = true ;Sleep(200);printf( "ctrl-close event\n\n" );return( true );// pass other signals to the next handler.case CTRL_BREAK_EVENT:Close_Exit = true ;Sleep(200);printf( "ctrl-break event\n\n" );return false;case CTRL_LOGOFF_EVENT:Close_Exit = true ;Sleep(200);printf( "ctrl-logoff event\n\n" );return false;case CTRL_SHUTDOWN_EVENT:Close_Exit = true ;Sleep(200);printf( "ctrl-shutdown event\n\n" );return false;default:return false;}
}//在函数中调用
int main(int argc, char* argv[])
{
//开启监听
if(SetConsoleCtrlHandler( (PHANDLER_ROUTINE)Ctrlhandler, true ))
{
//写正常代码}}

 


推荐阅读
author-avatar
飞飞飞070801
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有