• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++ 2010 メッセージが文字化けします。)

VC++ 2010で文字化けする問題について

このQ&Aのポイント
  • VC++ 2010でsendmessage関数を使用して文字列を送信すると、textboxに表示する際に文字化けする問題が発生しています。
  • sendmessage関数を使用して文字列を送信した後、受信側のアプリケーションで受け取った文字列が正常に表示されません。
  • 問題の原因がわからず、解決策を探しています。VC++に詳しい方がいらっしゃいましたら、教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

送信側がマルチバイト文字列(char*)を渡しているのに、受信側がワイド文字列のポインタ(wchar_t*)として受けているためです。送信側と受信側で一致させる必要があります。 …で、それを一致させれば、受信側の最初の str で文字列を取れているはずですが(プロセス間通信に必要な共有メモリでのやり取りは WM_COPYDATA メッセージがすべて代行してくれるので、他にやることは何もない)、それ以降に記載されているマッピングオブジェクトの作成云々は、ここでの送信側でも受信側でもない第三のプログラムが見るために共有メモリに格納しているということでしょうか? 少なくとも、ここの送信側と受信側のやり取りには全く意味のないものですが。

rafute
質問者

お礼

->fresh_homepieさん 回答ありがとうございます。 無事文字列が表示されました。 共有メモリを使用しているのは、おっしゃるとおり第三のプログラムが介入するためです。 ただし、これは前任者からの指示でやっているので自分はよくわかっていません。 初心者ですし、全部はすぐに理解できませんので。 また、今のプログラムはメッセージのやり取りを確認するために固定文字列の送受信を試しているプログラムですので、今後は複数のアプリケーションから変動型の文字列をメッセージとして送受信します。 外部からの変動型文字列をメッセージで送受信するためにも共有メモリを使用しているのだと思います。 本当にありがとうございました。 またわからないことがあれば質問させていただきますのでよろしくお願いします。

関連するQ&A