CString是windows的字符串,有时候它的转换让人咬牙切齿,很多MFC的接口都涉及到字符串的转换,更可恨的是还涉及到字节编码的转换,所有两者导致转换很多种情况,新手可能今天转换成功,下次同样的方法却转换不成功,而许多MFC接口是字符串输入不对很难输出正确的结果的。
Unicode下CString转换为char *
CString转换成char*有很多种方法,以下是三种常见的
但是这个只局限于宽字节Unicode的情况,在窄字节和多字节的情况下不行的,所以一般情况下还涉及多字节编码转换,这就是比较头疼的问题。一般情况下,Unicode转为多字节可以用以下方法
聪明的你会发现,这里面涉及到内存的拷贝,以及字符串长度的计算,特别的在最后一个字符要赋值为0.这才是成功的。所以可以总结为以下步骤