• 締切済み

Visual C++でのCreateMutex

次のようなプログラムで、ある実行ファイルが既に起動しているかどうかをチェックしています。 hMutex=CreateMutex(NULL, TRUE, "filename"); if(GetLastError() == ERROR_ALREADY_EXISTS){   A } else{   B } C++で作成したファイルが起動していると、Aの方に抜けて、起動をとらえられるのですが VBで作成したファイルは起動していても、Bの方に抜けて、起動をとらえられません。 何が悪いのでしょうか?

みんなの回答

回答No.1

>何が悪いのでしょうか? http://d.hatena.ne.jp/cjohn/20081204/1228397004 の「罠2」「罠3」をご参照下さい。 罠2の意味は「CreateMutexがNULLを返しと、エラー原因がERROR_ALREADY_EXISTSにならない」って事です。 罠3の意味は「他のユーザーで既に起動していると、起動しているのを捕捉できない」って事です。

aki2004-09-08
質問者

お礼

回答ありがとうございます。

関連するQ&A