应用程序结果受另一个运行的应用程

时间:2010-04-17 18:36:57

标签: c winapi visual-studio-express

这是我previous question的后续内容,尽管这是关于其他事情的。

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

我的应用程序基于MSDN sample,以确保我没有遗漏某些内容,我创建了一个单独的解决方案,添加了MSDN示例(不需要对我的需求进行任何更改),并且毫不奇怪它工作正常。

现在对于奇怪的一点,当我运行MSDN示例运行(如在调试中)并运行我自己的应用程序时,文本打印出来没有任何问题。第二个我自己运行我没有原来的MSDN样本打开它无法工作,只显示“M”。

我查看了调试器并且似乎没有注意到任何可疑的内容(这是一个稍微过时的图片,我修复了数据类型的不一致)。

Debugger Information

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

感谢您的帮助。

修改

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

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

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

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

这总是小事。

1 个答案:

答案 0 :(得分:1)

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