VS2005中,如何把CString 转成 char * ,
用str.GetBuffer(str.GetLength());
和 char * p =  (LPSTR)(LPCTSTR)str;
貌似都不行,同样两种方法在VC6中都可以用,小弟头一次用VS

解决方案 »

  1.   

    CStringA strTemp(str);
    strTemp.GetBuffer(strTemp.GetLength()); 
      

  2.   

    #include <atlbase.h>CString strText = _T("...");
    USES_CONVERSION;
    char* szText = T2A(strText);
      

  3.   

    CString strText = _T("...");
    USES_CONVERSION;
    char* szText = W2A(strText.GetBuffer(0));
      

  4.   

    char* pUSBKeyID = (char*) m_UsbKeyId.operator LPCTSTR();
    这样就可以了,其中m_UsbKeyId是CString对象。
      

  5.   

    char *p;
    CString str(_T("Good Morning"));
    p = str.GetBuffer(str.GetLength());
    不知道行不行,我也没有用过VS2005,不过可以试一下
      

  6.   

    sprinf("%s", szchar, strCString.GetBuffer())
      

  7.   

    支持楼上的,我用的就是这个函数搞定了
    WideCharToMultiByte(...)
      

  8.   

    CString str;
    str.operator LPCTSTR(); //返回值就是char数组
      

  9.   


    //#include <atlconv.h>USES_CONVERSION;
    CString str = _T("abdefg");
    std::string strConv = (char *)W2A(LPCTSTR(str));
      

  10.   

    #include <atlbase.h>CString strText = _T("...");
    USES_CONVERSION;
    char* szText = T2A(strText);这个真可以转换