2

C で書かれたウィンドウのない Win32 アプリケーションがあります。私の質問は、アプリケーションの終了を処理する方法はありますか。元。タスクマネージャーまたはコンソールから閉じます。

4

2 に答える 2

3

質問からは不明ですが、これがコンソール モード アプリケーションの場合は、SetConsoleCtrlHandlerを呼び出して、Windows がアプリを終了する直前に呼び出すコールバックをインストールできます。このコールバックは別のスレッドで実行され、コールバック関数をすばやく完了する必要があることに注意してください。

ウィンドウを作成しないネイティブ Windows プログラムの場合、このような通知を受け取るにはウィンドウが本当に必要です。これは問題ではありません。表示する必要はありません。ShowWindow() を呼び出さないでください。

前述の atexit() は機能しないことに注意してください。これらは、あなたが話している失礼な中止であり、プログラムが通常のシャットダウンシーケンスを通過できないようにします。

于 2013-03-07T16:53:52.320 に答える
1

atexit()関数 ( http://msdn.microsoft.com/en-us/library/tze57ck3%28v=vs.100%29.aspx ) を参照してください。

この関数を使用すると、プログラムの終了時に呼び出されるハンドラをインストールできます。

于 2013-03-07T16:14:15.153 に答える