如题

解决方案 »

  1.   

    既然未知,那么就不可以转换啊,如果你非要转换就强行转换,最好加一个try.
      

  2.   

    lParam好像是个32位的指针吧,转换成CString* 看看
      

  3.   

    CString *s = (CString *)lparam;这样强行转换就可以了
    不过在未知类型的情况下,转成CString *好象没有什么意义把
      

  4.   

    意思没讲明白
    主要是指:INT、LONG、BOOT、CHAR、STRING等常见类型,我是想把这些数据都转成字符形式显示出来,类拟于CSTRING.FORMAT的功能,但它好像不能转指针类型的??
      

  5.   

    我建议你用另外一个wparam来传递他的参数类型,因为你的类型太多了,假如是不能够识别的指针,很明显,你转过来就会出现异常.这样,你知道他应该是什么数据类型了当然就好转化了.比如int,可以用itoa,或者其他的.char*可以强制转换等.
      

  6.   

    LPARAM lParam;
    int li_Chan = (int)wParam;
    char *ls_Msg = (char *)lParam;
    CString ls_str.Format("%d",li_chan);
      

  7.   

    但令人不解的是SPY++中抓到的消息的lParam参数的内容都可以转成文本进行显示,难道它的作法是根据每个具体消息来进行类型转吗?
      

  8.   

    SPY++,应该是根据不同的类型做了转换的。