2008-09-18 2 views
1

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

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

ответ

3

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

CreateMutex

WaitForSingleObject

ReleaseMutex

CloseHandle

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

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

InitializeCriticalSection

EnterCriticalSection

LeaveCriticalSection

DeleteCriticalSection

1

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

CreateMutex(...) 
WaitForSingleObject(...) 
ReleaseMutex(...) 
Смежные вопросы