在没有MFC的情况下与CMutex进行交互
时间:2020-03-06 14:23:20 来源:igfitidea点击:
我们有多个MFC应用程序,它们使用CMutex(false," blah"),其中" blah"允许互斥锁跨进程边界工作。
这些应用程序之一在没有MFC的情况下被重写(改用Qt)。如何使用Win32调用模拟CMutex? (Qt的QMutex不是进程间的。)我不希望不修改MFC应用程序。
解决方案
以下功能可能就是我们想要的功能,它们都记录在MSDN上。
CreateMutex(...) WaitForSingleObject(...) ReleaseMutex(...)
对于进程间互斥锁,我们需要以下调用:
CreateMutex WaitForSingleObject ReleaseMutex CloseHandle
这些是CMutex封装的基础Win32 API调用。
对于仅进程内互斥锁,我们还可以使用以下调用,这些调用速度更快:
InitializeCriticalSection EnterCriticalSection LeaveCriticalSection DeleteCriticalSection