interactuando con un CMutex sin MFC

Tenemos varias aplicaciones MFC, que usan CMutex (falso, "bla"), donde "blah" permite que el mutex trabaje a través de los límites del proceso.

Una de estas aplicaciones fue reescrita sin MFC (utilizando Qt en su lugar). ¿Cómo puedo simular CMutex usando llamadas Win32? (Qt's QMutex no es entre procesos). Prefiero no modificar las aplicaciones de MFC.

0
agregado editado
Puntos de vista: 1

2 Respuestas

Para exclusión mutua entre procesos, desea estas llamadas:

CreateMutex

     

WaitForSingleObject

     

ReleaseMutex

     

CloseHandle

Estas son las llamadas API de Win32 subyacentes que CMutex es un envoltorio.

Para mutexes solo en el proceso también puede usar estas llamadas, que son más rápidas:

InitializeCriticalSection

     

EnterCriticalSection

     

LeaveCriticalSection

     

DeleteCriticalSection

0
agregado

Los siguientes funcs probablemente sean los que usted desee, están documentados en MSDN.

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
0
agregado