关于一个进程的有关问题

关于一个进程的问题
关于一个进程的有关问题
这个用进程调用,在执行的窗体中进度信息时乱码,如果直接调用就没问题了。
 switch (m.Msg)
            {
                case WM_TOTALLENGHT:
                    if ((int)m.WParam == SC_CLOSE) return;
                    label3.Text = "句柄:"+this.Handle.ToString();
                    lock (obj)
                    {
                        ec.UpdateXML(this.Handle.ToString(), "忙碌");
                    }
                    maxNum = (int)m.WParam;
                    progressBar1.Maximum = maxNum;
                    ; break;
                case WM_ACTUALLENGTH:
                    if ((int)m.WParam == SC_CLOSE) return;

                    if (m.WParam.ToInt32() <= maxNum)
                    {
                        this.progressBar1.Value = m.WParam.ToInt32();
                        if (m.WParam.ToInt32() >= maxNum)
                        {
                            lock (obj)
                            {
                                ec.UpdateXML(this.Handle.ToString(), "空闲");
                            }
                            //progressBar1.Value = 0;
                        }
                    }

                    ; break;
                case WM_FILENUMBER: ; break;
                case WM_CURRENTNUMBER: ; break;
                case WM_Message:

                    //label2.Text = "信息" + Marshal.PtrToStringAnsi(m.LParam) + Environment.NewLine;
                    byte[] buffer = Encoding.GetEncoding("UTF8").GetBytes(Marshal.PtrToStringAnsi(m.LParam));
                    label2.Text = "信息:"+Encoding.UTF8.GetString(buffer);
                    ; break;
                case WM_COPYDATA: //使用此地址不同进程传递字符串消息
                    MSGIS.Debug.WinApi.cDll.COPYDATASTRUCT myStr = new MSGIS.Debug.WinApi.cDll.COPYDATASTRUCT();
                    Type myType = myStr.GetType();
                    myStr = (MSGIS.Debug.WinApi.cDll.COPYDATASTRUCT)m.GetLParam(myType);
                    label4.Text ="信息:"+ myStr.lpData; ; break;
            }

------解决思路----------------------
检查一下你CS文件的编码格式,有可能会有影响。
------解决思路----------------------
//byte[] buffer = Encoding.GetEncoding("UTF8").GetBytes(Marshal.PtrToStringAnsi(m.LParam));
//label2.Text = "信息:"+Encoding.UTF8.GetString(buffer);

label2.Text = "信息" + Marshal.PtrToStringUni(m.LParam) + Environment.NewLine;