CString aa="why111" ;
LPWSTR aa1 =L"why111";
LPWSTR bb1=(LPWSTR)(LPCTSTR)aa;
 我觉得aa1和bb1应该相同,但是aa1!=bb1,这是为什么,怎么能把变量aa转换成和aa1类型和值都相等的变量?

解决方案 »

  1.   

    LPWSTR lpStr = (LPWSTR)aa.GetString();
      

  2.   

    不好意思,我用的是VC6,为什么会报这个错呢?
    'GetString' : is not a member of 'CString'
      

  3.   

    aa1!=bb1
    当然不相等,应为字符串的比较是要通过函数 aa1和bb1不过是字符串的首地址
      

  4.   

    关键是值也不相等,我想让变量aa转换成和aa1类型和值都相等的变量?该怎么办?
      

  5.   

    CString aa="why111" ; 
    LPWSTR aa1 =(LPWSTR)(LPCTSTR)aa;
    LPWSTR bb1=(LPWSTR)(LPCTSTR)aa; 这样试试
      

  6.   

    我希望值和类型相等,但是希望第二个aa2和aa1相等,不是存储在一个地方。其实我本身希望程序中出现一个和aa1相同的值,但是我发现程序和设想的不一样,后来发现问题是在=(LPWSTR)(LPCTSTR)转换中,所以我就想怎么能转换成和aa1相同的值
      

  7.   

    不同编码的字符串,你用类型强制转换并不能使编码变化,需要用函数进行编码的转换,比如WideCharToMultiByte