C++中有"Closing console"这样的事件吗?

use*_*298 7 c++ windows console

是否存在类似C#"FormClosing"的事件,但在C++中作为控制台关闭,我可以在控制台关闭之前执行一些代码?(在我的例子中,我想在控制台完全关闭之前用用户的输入创建一个目录).

deW*_*eW1 11

我的猜测是你想在点击[X]时获得活动

BOOL WINAPI HandlerRoutine( DWORD eventCode )
{
  switch( eventCode )
  {
      case CTRL_CLOSE_EVENT:
      // do your thing
      return FALSE;
      break;
   }

  return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

这就是你要找的东西吗?

您还需要启用处理程序:

int main()
{
    SetConsoleCtrlHandler( HandlerRoutine , TRUE );
    getch();
}
Run Code Online (Sandbox Code Playgroud)

更多信息

  • 值得注意的是,在处理程序中响应CTRL_CLOSE_EVENT存在时间限制,如果超过它,Windows将会终止您的应用程序(您有大约5秒IIRC).此外,处理程序将从与您的主程序不同的线程调用! (3认同)