这是我之前回答的问题here
后面的问题起初我认为我的创建事件的方式有问题,因为OpenEvent的句柄返回NULL,我设法找到了真正的原因,但我不知道该怎么做。
基本上我使用Visual Studio同时启动进程A和B,过去我的OpenEvent句柄不起作用,因为进程A在进程B之前的几分之一秒内查找事件的地址是时候了。
我的解决方案是简单地允许进程B在进程A之前运行,修复错误。
我现在遇到的问题是,进程B现在从进程A中读取事件,并且正如您所期望的那样,在尝试从进程A打开事件时也会返回空句柄。
我在两个进程的WM_CREATE消息中创建事件,此外我还同时创建一个线程来打开/读取/处理事件。
看来如果我在他们没有机会看到对方的同时运行它们,或者如果我在另一个人错过之前运行一个并且无法打开句柄。
有人可以建议解决方案吗?
感谢。
答案 0 :(得分:1)
只需用CreateEvent替换OpenEvent即可。 CreateEvent将打开一个Event,而不是创建一个新的Event,它会找到一个名为传递给CreateEvent的现有事件。