在VC的MFC中,用类CString的那一个函数可以返回构造它的那个字符串??

来源:百度知道 编辑:UC知道 时间:2024/05/08 01:09:56
比如说:CString str("abc");
如何得到char *s = "abc";这样一个字符串.

string -> CString
CString.format("%s", string.c_str());

char -> CString
CString.format("%s", char*);

char -> string
string s(char *);

string -> char *
char *p = string.c_str();

CString -> string
string s(CString.GetBuffer());

CString str("abc");
str.GetBuffer();

如果你的MFC是多字符版本的话(不支持Unicode的),那么CString转Char*如下:
CString str="abc";
Char *pCh;
int length=str.GetLength(); //获得字符串长度,此处length=3;
pCh=str.GetBuffer(length); //此处处理之后pCh="abc"
str.ReleaseBuffer(); //释放,最好有这句吧
如果你的MFC是用vs2005写的,支持Unicode的话,不能用上面的了,其中一种方法是使用宏,代码如下:
char *pCh;
CString str=L"abc"; //Unicode版本的CString都有个"L"
//使用宏转换,Unicode->ANSI
USES_CONVERSION;