質問

CMutex( false, "blah" ) を使用する MFC アプリが複数あり、「blah」によりミューテックスがプロセス境界を越えて動作できるようになります。

これらのアプリの 1 つは、MFC を使用せずに (代わりに Qt を使用して) 書き直されました。Win32 呼び出しを使用して CMutex をシミュレートするにはどうすればよいですか?(Qt の QMutex はプロセス間ではありません。) MFC アプリは変更しないことを好みます。

役に立ちましたか?

解決

プロセス間ミューテックスの場合は、次の呼び出しが必要です。

ミューテックスの作成

シングルオブジェクトを待つ

リリースミューテックス

クローズハンドル

これらは、CMutex がラッパーである基礎となる Win32 API 呼び出しです。

インプロセスのみのミューテックスの場合は、より高速な次の呼び出しを使用することもできます。

クリティカルセクションの初期化

クリティカルセクションに入る

クリティカルセクションを離れる

クリティカルセクションの削除

他のヒント

おそらく次の関数があなたが望むものになるでしょう。それらはすべて MSDN に文書化されています。

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top