※ ChatGPTを利用し、要約された質問です(原文:VC++で作成したプログラムが2重に実行される)
VC++で作成したプログラムが2重に実行される
このQ&Aのポイント
VC++で作成したプログラムが意図せず2重に実行されてしまう問題が発生しています。どの設定項目が影響しているのか、またはコンパイラが壊れている可能性があるのか知りたいです。
VC++ 2010 Express SP1を使用して作成したプログラムが、実行すると2つのプロセスが起動し、1つのウィンドウが開かれます。キーを押すと閉じられ、同じメッセージが表示されるウィンドウが再度開かれます。同様の現象がDebugモードでもReleaseモードでも生じます。この問題について教えていただけないでしょうか。
VC++で作成したプログラムが2重に実行されてしまう問題に遭遇しました。Win Vista 32bitでVC++ 2010 Express SP1を使用しています。プログラムを実行すると2つのプロセスが起動し、1つのウィンドウが表示されます。ウィンドウを閉じると同じメッセージが表示される新しいウィンドウが開かれます。この問題が起こる原因や解決策について教えてください。
バージョンはVC++ 2010 Express SP1、OSはWin Vista 32bitです。例えばWin32コンソールアプリケーションのプロジェクトを作成し、以下のようなソースコードをビルドしたとします。
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
system("PAUSE");
}
作成されたexeファイル(添付画像の1.exe)をダブルクリックで起動すると、画像のように2つのプロセスが開始され、1つのウィンドウが開きます。何かキーを押すとこのウィンドウが閉じるわけですが、その時、メモリ使用サイズの大きい方のプロセスが消え、小さい方のプロセスだけ残ります。そして、閉じたウィンドウと同じ"Hello, world!"と表示されたウィンドウがまた開きます。これを閉じるとプロセスも完全に終了します。
どうやら、同じプログラムが意図せず2重に実行されてしまうみたいなのです。Debugモードでも、Releaseモードでも、上記の例と全く異なるソースコードでも、Win32プロジェクトでも同様の現象が生じてしまいます。以前は1つのプロセスとしてプログラムが実行されていたのではなかったかと思うのですが、どの設定項目が影響してこの現象を生じてると考えられますか?あるいは、コンパイラが壊れてるのでしょうか(以前、VC++ 2008 Expressと共生させていたことがあります)?どうか皆様のお知恵をお貸しください。
お礼
結局、原因はavastというアンチウイルスソフトのディープスクリーンという機能だったみたいです。大騒ぎしてすいません。アドバイスをくださり、ありがとうございました。
補足
exeファイルを右クリックメニューの「開く」を選択して実行しても同様の現象が起きますし、VC++の「デバッグ開始」や「デバッグなしで開始」で実行しても同様の現象が起きますので、そのオチはありません。ご心配ありがとうございます^^;