两个项目(VS2005,VC6)进程之间, 使用“共享内存”进行通讯,如何实现互斥?

时间:2021-05-04 20:14:47
是这样的,我们在做一个监控软件。

已有的功能模块中,一部分是用VS2005写的,另一部分则是VC6写的。

现在需要有个工程项目,需要这些模块的整合,鉴于工作量的考虑,并不想转换平台,而是考虑了进程通讯。
这就涉及到要交互一些数据,目前选用了“共享内存”的方法。

现在的问题是,这块共享内存属于公共资源,如何在不同的项目进程之间实现互斥,或者说是同步?



请教各位,望踊跃发言。

5 个解决方案

#1


创建  命名的 CreateEvent

多进程可以共享,这是比较简单快捷的办法

#2


多谢LS,我回去试一下,还有其他方法吗?望不吝赐教。

#3


引用 1 楼 saimen 的回复:
创建命名的 CreateEvent

多进程可以共享,这是比较简单快捷的办法

我想再问一下: CreateEvent的安全性,或者说是可靠性怎么样?
比如说,如果通过发消息的方法传递状态,因为消息是不可靠的,所以有可能状态得不到保证。
那么Event呢,会不会有类似的一些情况?

#4


放心吧,Event设置了,就一定行的。不会丢失的

#5


那就多创建几块共享内存呗

#1


创建  命名的 CreateEvent

多进程可以共享,这是比较简单快捷的办法

#2


多谢LS,我回去试一下,还有其他方法吗?望不吝赐教。

#3


引用 1 楼 saimen 的回复:
创建命名的 CreateEvent

多进程可以共享,这是比较简单快捷的办法

我想再问一下: CreateEvent的安全性,或者说是可靠性怎么样?
比如说,如果通过发消息的方法传递状态,因为消息是不可靠的,所以有可能状态得不到保证。
那么Event呢,会不会有类似的一些情况?

#4


放心吧,Event设置了,就一定行的。不会丢失的

#5


那就多创建几块共享内存呗