[DllImport("User32.dll",EntryPoint="PostMessage")] 
        private static extern int PostMessage(int hWnd,int Msg,int wParam,int lParam);protected override void DefWndProc(ref System.Windows.Forms.Message m) 都有的了,传整型也成功,可就是不知道用什么方法将STRING等对象类型传递过去,谢谢大家

解决方案 »

  1.   

    定义里边没有string 为什么还要传string ?
      

  2.   

    我以前用的是C++,可以NEW一个对象,然后传的是该对象的地址,用到C#上就麻烦了
    POSTMESSAGE等的API定义虽然定义的是数值型,但任何类型对象都是可以传的,楼上,明白了吗?
    当然,不知道在C#里面怎么用,所以来求助大家
      

  3.   

    这就是C++和c#的严重区别,C++太灵活了,也带来了不安全
    就是因为不了解C#,所以才来问大家有没有这样的解决办法
    当然如果不怕麻烦,可以自己写消息队列,使用STRING做为传递对象,肯定也可以
    想知道有没有其它的办法
      

  4.   

    [DllImport("User32.dll",EntryPoint="PostMessage")] 
            private static extern int PostMessage(int hWnd,int Msg,int wParam,int lParam);
    自己定义传递函数;根c++ 里差不多
      

  5.   

    private static extern int PostMessage(int hWnd,int Msg,String wParam,int lParam);这样倒是编译也通得过,可是传过来的好象不是STRING,不知道是什么东西,怪怪的
      

  6.   

    解决了
    IntPtr  ip  =  System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(log);
                PostMessage(this.Handle.ToInt32(), WM_LOG,ip, 0);
    private static extern int PostMessage(int hWnd,int Msg,IntPtr wParam,int lParam);希望对大家有帮助