1

C#(コンパクトフレーム)のアプリからC ++(MFC)の別のアプリにWindowsメッセージを送信しようとしています。どちらもPDAにあります。

レシーバーアプリ(MFC)で、メッセージを受信したのに文字列メッセージが読めないことに気づきました。小さな四角が表示されています。

これは送信者のコードです(C#)

OpenNETCF.Win32.Win32Window.SendMessage(hwndVal, typeMsgVal, intValue, stringMessage);

そしてこれは受信機のコードです(C ++)

CString myStr = (CString) lParam;
AfxMessageBox(myStr);

よろしくお願いします!

4

3 に答える 3

0

C# 文字列は Unicode としてエンコードされますが、既定のCString動作はLPCTSTR. MFC アプリケーションがマルチバイト文字セットを使用してコンパイルされることを確認します (_UNICODEディレクティブまたはコンパイラ ステートメントを表す)。

詳細については、MSDNを参照してください。

于 2012-12-20T09:17:52.410 に答える
0

より良い解決策は、C++/CLI dll を作成し、この dll にメッセージを送信することです。この dll は MFC dll と通信します。利点は、C++/CLI dll では、System.String を CString に変換し、この CString を MFC dll に渡すことができることです。

于 2012-12-20T10:40:42.530 に答える