CString数据类型并非每次都可以存放任意大小的字符串,当前CString数据类型可以存放多长字符串取决于前一次CString成功存放多长的字符串
例如:
CString str = "123"; //str当前字符串大小为3
strcpy(str.GetBuffer(0) , "12345678") //溢出报错
strcpy(str.GetBuffer(100) , "12345678") //正确:str现在已经申请了100个字节
CString转换成*char
例如:
char *chBuf;
CString str;
chBuf = str.GetBuffer(0);
注:
CString.GetBuffer(0) = CString.GetBuffer(CString.GetLength())
CString.GetBuffer(0)相当于返回字符串首字母
CString.ReleaseBuffer():用于重新计算字符串长度
例如: CString str="hello";
char *chBuf = str.GetBuffer(0);
strcpy(chBuf , "str");
int len=str.GetLength(); //len = 5;
str.ReleaseBuffer();
len=str.GetLength(); //len=3;