将字符串转换为IntPtr
|
对不起,我的英语不好。
我使用将字符串转换为IntPtr
COPYDATASTRUCT cd = new COPYDATASTRUCT();
cd.dwData = 0;
cd.lpData = Marshal.StringToHGlobalAuto(Msg).ToInt32();
cd.cbData = Msg.Length;
Marshal.StringToHGlobalAuto(Msg);
并使用SendMessage方法将其发送到另一个窗口
当我收到并读取IntPtr作为字符串使用
COPYDATASTRUCT CD = (COPYDATASTRUCT)Marshal.PtrToStructure(lParam, typeof(COPYDATASTRUCT));
byte[] B = new byte[CD.cbData];
IntPtr lpData = new IntPtr(CD.lpData);
string temp = Marshal.PtrToStringUni(lpData);
Marshal.Copy(lpData, B, 0, CD.cbData);
string strData = Encoding.Default.GetString(B);
我收到此数据
M \\ 0S \\ 0G \\ 0!\\ 0 @ \\ 01 \\ 0 | \\ 01 \\ 0 | \\ 0C \\ 0:\\ 0 \\\\ 0U \\ 0s \\ 0e \\ 0r \\ 0s \\ 0 \\\\ 0f \\ 0。\\ 0a \\ 0l \\ 0s \\ 0a \\ 0
当我做strData.Replace(\“ \\ 0 \”,\“ \”)
我收到我的消息,但消息被截断了。
MSG!@ 1 | 1 | C:\\ Users \\ f.alsa
原始消息是MSG!@ 1 | 1 | C:\\ Users \\ f.alsayyed \\ Desktop \\ File.ktb
没有找到相关结果
已邀请:
1 个回复
蹦吃舷弦