CString ,char[]。
能不能
CString s;
char *p=s;

解决方案 »

  1.   

    不行,编译通不过的,写成char *p=s.GetBuffer(s.GetLength());
      

  2.   

    CString s;
    char *p=s;
    -------------
    囧,你见过有这么写的吗?
      

  3.   

    肯定不行咯...    CString str    = "Hello World !";
        char    *pTemp = new char[str.GetLength()];
        strcpy(pTemp,str.GetBuffer(str.GetLength()));
        printf("pTemp = %s",pTemp);
      

  4.   

    CString是一个类,可以进行许多操作,其初始化为CString str("xx");也可以用等号进行初始化,因为其内部对=进行了重载;CString 转化成 char* 之一:强制类型转换为 LPCTSTR;
    CString转化成char* 之二:使用 CString 对象的 GetBuffer 方法
      

  5.   

    s是CString类的对象,p是char字符串指针,是不能这样操作的,可以这么处理:
    (1)非Unicode版本:p = s.GetBuffer(0);
    (2)Unicode版本:s.GetBuffer(0)内容是宽字符串,而p是窄字符串指针,所以要将s.GetBuffer(0)内容转化一下,才能赋给p