0

これは私の前の質問の続きですが、これは別のことについてです。

あるプロセスから別のプロセスに渡すメッセージに最初の文字(この場合は「M」)しか表示されないという問題が発生しています。

私のアプリケーションはMSDNサンプルに基づいているので、何かを見逃していないことを確認するために、別のソリューションを作成し、MSDNサンプルを追加し(ニーズに合わせて変更することなく)、当然のことながら正常に動作します。

奇妙なことに、MSDNサンプルを実行して(デバッグのように)、独自のアプリケーションを実行すると、テキストは問題なく正常に出力されます。2番目に、元のMSDNサンプルを開かずに単独で実行すると、機能せず、「M」のみが表示されます。

デバッガーを調べましたが、疑わしい点は何もありません(少し古い画像です。データ型の不整合を修正しました)。

デバッガー情報

誰かがこれに関する解決策を提供できますか?私はこれまでこのようなものに遭遇したことがありません。私のソースコードを見るには、質問の上部に投稿したリンクを見る方が簡単です。2回投稿しても意味がありません。

助けてくれてありがとう。

編集:

さらに調査したところ、私自身のアプリケーションが他のアプリケーションのメモリを誤って読み取っているようです。プロデューサーウィンドウを介してメッセージを送信せずにメッセージを「ポーリング」した場合でも、他の(MSDN)プロセスからメッセージを読み取っていることを意味するメッセージが表示されます。これは、MSDNを実行したときにのみ正しく機能する理由も説明します。最初にサンプルします。

なぜこれが起こるのか、それを止める方法とそれを修正する方法を私はまだ理解していません、これはおそらく私が遭遇した中で最も奇妙なことです。

****解決:****

両方のアプリケーションが互いに影響し合うという問題は修正されませんが、テキストの問題を修正することができました。両方のファイルに必要な#includeを追加しませんでした。これを追加すると、警告なしに修正されました。

それはいつもささいなことです。

4

1 に答える 1

1

pBuf「メモリビューア」ウィンドウを見てください。文字列ビューアは最初のヌルターミネータで終了しますが、その先にあるものは興味深い/有用であるか、手がかりを提供する可能性があります。

于 2010-04-17T19:50:16.313 に答える