Cstring 在不同编码下与char的关系

Cstring是一个封装好了的类,封装时必须考虑兼容问题,所以Cstring 等价于LPCTSTR ,这里C表示常量不是很重要,重要的是T这是个宏,如果定义了统一码(unicode),宏T也表示宽字符(W表示宽字符),即一个字符占2字节。这种情况下 T(“xxx”)等价于L"xxx"的;这样一来 如果没定义unicode CString = LPCTSTR =const char*;如果定义了unicode CString=LPCTSTR=LPCWSTR = const w_char*(都是宽字符);如果指针之间等价是可以强制转换的(这里是说指针,不包括Cstring 这是个类),
但是指针转Cstring 可以借助Cstring的 构造函数 ,C string有6个 构造函数 其中就有char转Cstring的,CString( LPCSTR lpsz ); 所以mancode=CString(sRead);。

你可能感兴趣的:(Cstring 在不同编码下与char的关系)