- 締切済み
Visual C++でのCreateMutex
次のようなプログラムで、ある実行ファイルが既に起動しているかどうかをチェックしています。 hMutex=CreateMutex(NULL, TRUE, "filename"); if(GetLastError() == ERROR_ALREADY_EXISTS){ A } else{ B } C++で作成したファイルが起動していると、Aの方に抜けて、起動をとらえられるのですが VBで作成したファイルは起動していても、Bの方に抜けて、起動をとらえられません。 何が悪いのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
回答No.1
>何が悪いのでしょうか? http://d.hatena.ne.jp/cjohn/20081204/1228397004 の「罠2」「罠3」をご参照下さい。 罠2の意味は「CreateMutexがNULLを返しと、エラー原因がERROR_ALREADY_EXISTSにならない」って事です。 罠3の意味は「他のユーザーで既に起動していると、起動しているのを捕捉できない」って事です。
お礼
回答ありがとうございます。