如题,传英文字符都没有问题,但传中文就出错;
下面是定义:
public static extern int SendMessage(
int hWnd,
uint Msg,
int wParam,
int lParam
);
[DllImport("User32.dll ")] public static extern int SendMessage( int hWnd, // handle to destination window uint Msg, // message int wParam, // first message parameter ref COPYDATASTRUCT lParam // second message parameter sss );
public struct COPYDATASTRUCT
{ public IntPtr dwData;//用户定义数据 public int cbData;//长度 [MarshalAs(UnmanagedType.LPStr)]
public string lpData;//数据 }
接收代码:
if (m.Msg == msg.WM_COPYDATA)
{ COPYDATASTRUCT mystr = new COPYDATASTRUCT(); Type mytype = mystr.GetType(); mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
string msg1 = mystr.lpData;
richTextBox1.AppendText(msg1 + "\n");
}
下面是定义:
public static extern int SendMessage(
int hWnd,
uint Msg,
int wParam,
int lParam
);
[DllImport("User32.dll ")] public static extern int SendMessage( int hWnd, // handle to destination window uint Msg, // message int wParam, // first message parameter ref COPYDATASTRUCT lParam // second message parameter sss );
public struct COPYDATASTRUCT
{ public IntPtr dwData;//用户定义数据 public int cbData;//长度 [MarshalAs(UnmanagedType.LPStr)]
public string lpData;//数据 }
接收代码:
if (m.Msg == msg.WM_COPYDATA)
{ COPYDATASTRUCT mystr = new COPYDATASTRUCT(); Type mytype = mystr.GetType(); mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
string msg1 = mystr.lpData;
richTextBox1.AppendText(msg1 + "\n");
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货