コンソールまたはGUIのないC++ Windowsプログラムでは、タスクがキャンセル/停止されているかどうかを検出することはできません。 これをどうすれば実現できますか?C++ Windowsプログラム検出プログラム終了| GUIまたはコンソールなし
ありがとうございました。
コンソールまたはGUIのないC++ Windowsプログラムでは、タスクがキャンセル/停止されているかどうかを検出することはできません。 これをどうすれば実現できますか?C++ Windowsプログラム検出プログラム終了| GUIまたはコンソールなし
ありがとうございました。
「タスク」はどのように実行され、どのように停止しますか?外部から殺された/終了したばかりの場合、そのプロセスの中でそれを検出することはできません。
プログラムが通常の方法で終了した場合(killもno quick exitもありません)、exit()中に実行されるatexit()で「クリーンアップ」機能を登録できます。
EDIT:それはC++なので、カスタムタイプのグローバル変数を使用して、デストラクタ内でコードを実行することができます。これはatexit()と基本的に同じです。
atexit()
は、これを行うためのC移植可能な方法です。あなたがそれを行うためのWindowsの特定の方法を使用したい場合は
、これを参照してください。Win32 API analog of sending/catching SIGTERM
これは良いようです。 ありがとう – user3434681