3

アプリケーションを閉じる前にクリーンアップを行う必要がSetConsoleCtrlHandlerありますが、Windows CE コンソール アプリケーションでは使用できないようです。

Ctrl+CWindows CE 6で処理する別の方法はありますか?

4

2 に答える 2

5

Microsoft のドキュメントによると、Windows CE 3.0 以降でDeviceIoControlは、制御コードで呼び出された関数IOCTL_CONSOLE_SETCONTROLCHANDLERが Ctrl+C ハンドラを Windows CE にインストールします。私はまだ自分で試したことはありませんが、次のような「はず」が機能するはずです。

DWORD ignore;
DeviceIoControl(
    _fileno(stdout),                    // handle to the console
    IOCTL_CONSOLE_SETCONTROLCHANDLER,   // Tell Win CE to set the console Ctrl+C handler
    (LPVOID)consoleHandler,             // pointer to the signal handler
    sizeof(consoleHandler),             // size of the pointer
    NULL,                               // output buffer not needed
    0,                                  // zero output buffer size
    &ignore,                            // no data will be put into the output buffer so we don't need its size
    NULL);                              // not an asynchronous operation - don't need to provide async info

consoleHandlerもちろん、あなたの Ctrl+C ハンドラはどこにありますか。

ドキュメント:

必要なヘッダー:

  • Console.h
  • winbase.h(通常、windows.h に含まれています)。
于 2011-12-01T20:48:41.663 に答える