interagindo com um CMutex sem MFC

Temos vários aplicativos MFC, que usam CMutex (false, "blah"), onde "blah" permite que o mutex funcione além dos limites do processo.

Um desses aplicativos foi reescrito sem o MFC (usando o Qt). Como posso simular o CMutex usando chamadas Win32? (Qtutex do Qt não é entre processos.) Eu prefiro não modificar os aplicativos do MFC.

0
adicionado editado
Visualizações: 1

2 Respostas

Para mutexes entre processos, você deseja essas chamadas:

CreateMutex

     

WaitForSingleObject

     

ReleaseMutex

     

CloseHandle

Estas são as chamadas de API do Win32 subjacentes que o CMutex é um wrapper.

Para somente mutexes em processo, você também pode usar essas chamadas, que são mais rápidas:

InitializeCriticalSection

     

EnterCriticalSection

     

LeaveCriticalSection

     

DeleteCriticalSection

0
adicionado

Os seguintes funcs provavelmente serão o que você deseja, todos eles estão documentados no MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
0
adicionado