今天遇到一个问题,用vs2010编出来的基于控制台的可执行文件要求在运行期间不能被关闭,否则系统出现异常。因此需要对控制台右上角红叉叉的响应函数进行处理。
将那几行代码放在这里简单说明一下。
#include <windows.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
BOOL MyHandler( DWORD dwCtrlType ) //在回调中可处理各种消息响应
{
if ( dwCtrlType == CTRL_CLOSE_EVENT ) //处理右上角的红叉叉事件,这个只是在关闭前增加一个响应的处理函数,系统默认的关闭程序还是会执行
{
printf("Cannot close...\n");
return TRUE;
}else if(dwCtrlType == CTRL_C_EVENT) //处理ctrl+c事件,这里的响应是可以重入的,每次都会走到这里
{
printf("CTRL+C ...\n");
}