各位高手,如何将一个 CString 型的对象转换为 char * .在线等候,急!!!!!!!!!!!!!!急!!!!!!!!!!!!!!急!!!!!!!!!!!!!!急!!!!!!!!!!!!!!急!!!!!!!!!!!!!!

解决方案 »

  1.   

    用CString类的GetBuffer函数即可得到CString对象的字符串缓冲区的地址。
      

  2.   

    char * trn;
    strcpy(trn,(char *)LPCSTR(str));
    我刚搞过,接着就有人问。
    不过是别人的。我转贴。
      

  3.   

    您可以
    (1)用CString的方法GetBuffer()来取得.
       注意:使用过后,应该用ReleaseBuffer释放.
    (2)您可以用类型转换
       CString str("Hello");
       char* s=(char*)str;
    (3)在要求使用char*的地方,一般可以直接使用CString
      

  4.   

    CString str;
    char str2[10];
    int i;for(i=0;i<str.GetLength();i++)
    {
        str2[i]=str[i];
    }
    str2[i]='\0'
      

  5.   

    如果只是用于读取,可以这么做
    #include <atlconv.h>CString str;
    char* pszString = T2A(str);//或str.operator LPCTSTR()如果用于写入,那就先GetBuffer,再做类型转换
      

  6.   

    strcpy(trn,(char *)LPCSTR(str));
    strcpy的第二个参数本来只要求const char *,干嘛要强制转换成char *CString str("Hello");
       char* s=(char*)str;
    这样也行,你看看CString的源码CString str;
    如果是要用const char *,可以直接用str,或是LPCSTR(str)
    如果要用char *,就用str.GetBuffer(n);
    完了要str.ReleaseBuffer();
      

  7.   

    char* s=(char*)(LPCSTR)str;这样更好
      

  8.   

    使用运算符重载LPCSTR是最方便的。
      

  9.   

    使用运算符重载LPCSTR是最方便的。
    我使用过,不太好用.