Pergunta

Temos vários aplicativos MFC, que usam CMutex (false, "blah"), onde "blah" permite que o mutex ao trabalho em limites de processo.

Um desses aplicativos foi re-escrito sem MFC (usando Qt vez). Como posso simular o CMutex usando chamadas Win32? (QMutex do Qt não é inter-processo.) Eu prefiro não modificar os aplicativos MFC.

Foi útil?

Solução

Para mutexes inter-processo que você deseja essas chamadas:

CreateMutex

WaitForSingleObject

ReleaseMutex

CloseHandle

Estas são as chamadas de API Win32 subjacentes que CMutex é um invólucro em torno.

Por dentro do processo apenas semáforos você também pode usar estas chamadas, que são mais rápidos:

InitializeCriticalSection

EnterCriticalSection

LeaveCriticalSection

DeleteCriticalSection

Outras dicas

Os seguintes funcs provavelmente será o que você quer, todos eles são documentados no MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top