0

这是我上一个问题的后续,尽管这是关于其他问题的。

我遇到了一个问题,由于某种原因,我从一个进程传递到另一个进程的消息只显示第一个字母,在本例中为“M”。

我的应用程序基于MSDN 示例,因此为了确保我没有遗漏某些内容,我创建了一个单独的解决方案,添加了 MSDN 示例(没有根据我的需要进行任何更改),不出所料,它运行良好。

现在奇怪的是,当我运行 MSDN 示例运行(如在调试中)并运行我自己的应用程序时,文本打印得很好,没有任何问题。第二次我在没有打开原始 MSDN 示例的情况下自行运行它无法工作并且只显示“M”。

我查看了调试器,似乎没有发现任何可疑的东西(这是一张有点过时的图片,我已经修复了数据类型不一致)。

调试器信息

任何人都可以为此提供解决方案吗?我以前从未遇到过这样的事情。要查看我的源代码,只需查看我在问题顶部发布的链接会更容易,我将其发布两次是没有意义的。

感谢您的任何帮助。

编辑:

经过进一步调查,似乎我自己的应用程序以某种方式意外读取了其他应用程序的内存。如果我“轮询”消息,甚至没有通过生产者窗口发送它,它仍然会收到消息,这一定意味着它正在从另一个(MSDN)进程读取它,这也可以解释为什么它只有在我运行 MSDN 时才能正常工作先采样。

我仍然不明白为什么会发生这种情况,如何阻止它以及如何修复它,这可能是我遇到的最奇怪的事情。

****解决方案:****

虽然它不能解决两个应用程序相互影响的问题,但我已经设法解决了文本问题。我没有在两个文件中添加必要的#include,添加这个修复它没有任何警告。

总是小事。

4

1 回答 1

1

pBuf“内存查看器”窗口中查看。字符串查看器将在第一个空终止符处终止,但超出的内容可能有趣/有用或提供线索。

于 2010-04-17T19:50:16.313 回答