взаимодействовать с CMutex без MFC - PullRequest
1 голос
/ 19 сентября 2008

У нас есть несколько приложений MFC, которые используют CMutex (false, «бла»), где «бла» позволяет мьютексу работать через границы процесса.

Одно из этих приложений было переписано без MFC (вместо него использовался Qt). Как я могу симулировать CMutex с помощью вызовов Win32? (QMutex Qt не является межпроцессным.) Я предпочитаю не изменять приложения MFC.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2008

Для мьютексов между процессами вы хотите эти вызовы:

CreateMutex

WaitForSingleObject

ReleaseMutex

CloseHandle

Это базовые вызовы Win32 API, которые CMutex является оболочкой.

Для мьютексов только в процессе вы также можете использовать эти вызовы, которые быстрее:

InitializeCriticalSection

EnterCriticalSection

LeaveCriticalSection

DeleteCriticalSection

1 голос
/ 19 сентября 2008

Следующие функции, вероятно, будут тем, что вам нужно, все они задокументированы в MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...