[英]How to send Custom Message from C++ MFC to WPF C# application?
[英]How to send a windows message from C# to C++ (MFC)?
我正在嘗試將Windows消息從C#(緊湊型框架)中的應用程序發送到C ++(MFC)中的另一個應用程序,它們都在PDA中。
在接收器應用程序(MFC)中,我意識到我收到了該消息,但無法讀取字符串消息,它顯示了一個小方塊。
這是發件人(C#)的代碼
OpenNETCF.Win32.Win32Window.SendMessage(hwndVal, typeMsgVal, intValue, stringMessage);
這是接收方的代碼(C ++)
CString myStr = (CString) lParam;
AfxMessageBox(myStr);
在此先多謝!
您的每個應用程序在計算機上都有自己的內存空間。 通過發送變量“ stringMessage”,實際上是在發送該字符串的內存地址,而其他應用程序則不可用。
我不知道它是否適用於pda開發,但是本文可能會有用。
如果資源有限,則始終可以一一發送字符串的字符。 由於c#是Unicode,因此請在c ++ sice上使用wchar_t來處理lParam!
編輯:如Rup所述,如果您需要發送大字符串或需要非常頻繁地發送消息,則應使用WM_COPYDATA。
C#字符串編碼為Unicode,而默認的CString
行為是LPCTSTR
。 確保您的MFC應用程序使用MultiByte字符集(使用_UNICODE
指令或代表編譯器的語句)進行編譯。
有關更多信息,請參考MSDN 。
更好的解決方案是創建一個C ++ / CLI dll並將消息發送到該dll,並且該dll將與MFC dll通信。 好處是,在C ++ / CLI dll中,您可以將System.String轉換為CString並將此CString傳遞給MFC dll。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.