读书人

请教控制台程序在点CMD窗口的叉关闭时

发布时间: 2012-03-11 18:15:38 作者: rapoo

请问控制台程序在点CMD窗口的叉关闭时做了什么事?急求指点!
RT:
比如下面的程序,我如何在点叉结束时,调用postProc函数:
int postProc()
{
printf( "结束\n ");
return 0;
}

int main()
{
for(;;)
{
printf( "进行中\n ");
Sleep(1);

}
return 0;
}


[解决办法]

#include <stdio.h>

#include <windows.h>

BOOL WINAPI HandlerRoutine(DWORD dwCtrlType)
{
  if(dwCtrlType==CTRL_C_EVENT)
  {
    FILE *f = fopen( "c:\\log.txt ", "a ");
    fprintf(f, "ctrl-c\n ");
    fclose(f);
  }
  if(dwCtrlType==CTRL_CLOSE_EVENT)
  {
    FILE *f = fopen( "c:\\log.txt ", "a ");
    fprintf(f, "close\n ");
    fclose(f);
  }
  return false;
}

int main()
{
  SetConsoleCtrlHandler(HandlerRoutine,true);
  int n = 0;
  while(true)
  {
    printf( "n=%d\r ",n++);
    Sleep(1000);
  }
}

(中文空格)

读书人网 >C++

热点推荐