刚学C++,不好意思~问一个小问题,
1.  LPCTSTR lp=_T("123");
    cout<<l<<endl; //结果是004021C82.  CString cs="123";
    lp=(LPCTSTR)cs;
    cout<<l<<endl; //结果是003934C8
  
3.  string s="123";
    cs=s.c_str();
    lp=(LPCTSTR)cs;
    cout<<l;       //结果是003934C8,都是"123",为什么直接赋值给LPCTSTR和先给string或CString再转化得的结果不同?
现在遇到的问题是,我有一些数据存放在string里,想要像1方式赋值给赋值给LPCTSTR lp,产生了错误,请高手指点一下,谢谢~~

解决方案 »

  1.   

    写错了`~cout < <l <<endl; 应该是 cout < <lP <<endl;
      

  2.   

        LPCTSTR lp=_T("123"); 
        cout < <l < <endl; //结果是004021C8 
        CString cs="123"; 
        lp=(LPCTSTR)cs; 
        cout < <l < <endl; //结果是003934C8 
        string s="123"; 
        cs=s.c_str(); 
        lp=(LPCTSTR)cs; 
        cout < <l;      //结果是003934C8, 
    你是不是这样定义的
      

  3.   

    LPCTSTR   A 32-bit pointer to a constant character string that is portable for Unicode and DBCSLPCTSTR 是一个32位的指向常量字符串的指针在上面2和3你都是把lp指向了cs的地址怎么会不一样所以打印的时候要加上解引用符
      

  4.   

    LPCTSTR到底是什么东西呢?~按照打印出来是地址,那么 cout < <*lp < <endl, 结果出来一致了~但是全是49 ! 49和123没有关系吧?~~``更晕了`