新手用VS2010编写一个MFC工具所遇到的问题。
在之前做MFC用的都是用VC6,没有遇到太多问题,鉴于不太喜欢思考原因,所以一直糊里糊涂的用,现在想想,vc6新建MFC工程时应该默认的是非unicode编码吧。而VS2010编写一个MFC默认的是unicode的编码。
unicode编码时CString默认的是双字节的类型,也就是CString是与wchar_t* 相互转化,当我们传入char[ ]或char*时可能自动转换成双字节类型,也可能需要我们手动来转换,否则会报错,此时_T()也是有很大作用的(关于_T()在下文介绍)。当我们要将CString字符写入文件时,也要注意将其转换成char类型,以便可以直观的查阅,当然也可以不转,看起来就比较费事了,读取的时候也要记得是unicode的编码类型。
非unicode编码时,CString是与char*可较为直接的相互转化,一般常用有2种方式:
1. CString strFileName;
LPSTR
lpStr = strFileName.GetBuffer();
strFileName.ReleaseBuffer();
2.CString strFileName;