我们有多个 MFC 应用程序,它们使用 CMutex( false, "blah" ),其中“blah”允许互斥体跨进程边界工作。

其中一个应用程序是在没有 MFC 的情况下重写的(使用 Qt 代替)。如何使用 Win32 调用模拟 CMutex?(Qt 的 QMutex 不是进程间的。)我不想修改 MFC 应用程序。

有帮助吗?

解决方案

对于进程间互斥体,您需要这些调用:

创建互斥体

等待单个对象

释放互斥体

关闭句柄

这些是 CMutex 包装的底层 Win32 API 调用。

对于仅进程内的互斥体,您还可以使用这些更快的调用:

初始化关键部分

进入关键部分

离开关键部分

删除关键部分

其他提示

以下函数可能就是您想要的,它们都记录在 MSDN 上。

CreateMutex(...)
WaitForSingleObject(...)
ReleaseMutex(...)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top