掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アプリを終了してもプロセスタブから消えないのは何故? (ID:68500)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あるフリーソフトをネット上に公開しています。ダウンロード数はのべ10万回くらいのオーダーになっています。 最近あるユーザー(1人、OSはXP)から、「起動→終了したあと、また起動すると二重起動の警告が出て立ち上がらない」と指摘がありました。この指摘ははじめてです。 自分のOS(98SE, XP, Vista)では問題ありません。 このユーザーに協力して貰って調べた結果を、以下に述べますので、お気づきのことがありましたら、ご教授ください。よろしくお願いいたします。 VS2005, VC++, MFC, SDI, CFormView で作っています。 二重起動防止のため Mutex を使っています。 最初、これに問題があるのではないかと思って、別スレッドでご相談しましたが、これには問題はないようであり、このユーザーの場合「このアプリを終了してもタスクマネージャーのプロセスタブに残っている」ことが判明しました。 このアプリでは、フォームビューに139個のコントロールを配置しています。 コントロールは、リソースファイルに記述しています。 種類は、押しボタン、ラジオボタン、チェックボタン、エディット、コンボボックス、スピンおよびテキストです。 149個を3通りのメニュー(A,B,C)で切り替えています。 切り替えは、ShowWindow(SW_HIDE) および ShowWindow(SW_SHOW) で行っています。 メニューAのとき使うのは60個、Bのとき57個、Cのとき22個です。 このユーザーに5通りのプログラムをテストして貰った結果は、次の通りです。 ①Aに使う60個のみをリソースファイルに記述 ②Bに使う57個のみをリソースファイルに記述 ③Cに使う22個のみをリソースファイルに記述 ④A+Bの117個をリソースファイルに記述 ⑤A+B+Cの139個をリソースファイルに記述 【テスト結果】 ①②③の場合は、起動→終了でタスクマネージャーのプロセスタブから消える。 ④⑤の場合は、起動→終了してもプロセスタブに残る。 すなわち、このユーザーの場合「リソースファイルに記述してあるコントロールの数が、ある程度以上多いと、終了してもプロセスタブから消えない」ということです。 1.どうしてこういうことが起きるのでしょうか? 2.対策として、リソースに最初から139個のコントロールを記述するのではなく、コード(Create / Delete)で各メニューに必要な数だけ記述する方法を試みましたが、面倒過ぎて途中でやめています。 何かよい方法はないでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.