1

CMutex(false、 "blah")を使用する複数のMFCアプリがあります。ここで、 "blah"を使用すると、ミューテックスがプロセスの境界を越えて機能します。

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

4

2 に答える 2

3

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

CreateMutex

WaitForSingleObject

ReleaseMutex

CloseHandle

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

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

InitializeCriticalSection

EnterCriticalSection

LeaveCriticalSection

DeleteCriticalSection

于 2008-09-18T20:34:58.943 に答える
1

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

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
于 2008-09-18T20:28:59.927 に答える