初处接触wchar_t,不知道是什么东东?从字面上看,含有char,觉得应该是char类的字符,前面又有w,应该识wide,比char的存储位置还大。刚刚接触到程序里面有const wchar_t *myXML = NULL;Get(&myXML );函数都封装好,得到了myXML 的值,可苦于不知道怎么输出myXML 的值,于是网上找了一下资料。网上的资料介绍wchar_t如下:“wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,不等同于unicode编码。unicode编码的字符一般以wchar类型存储。char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示。 wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位[1],总之,wchar_t所能表示的字符数远超char型。 ”还真是跟char很相似的。
我想把其转换为CString ,试了原来的老方法,可是不行(CString cstring.format("%s",myXML); )。我想转换为char sz[1024]后,再转CString,也不行(sprint(sz,"s",myXML);cstring.Format("%s",sz);)。最终网上找了其他的方法解决了CString cstring(myXML);而相反,CString 转换为wchar_t的为myXML=cstring.AllocSysString();。 跟int转换为Float类似,同“兄弟姐妹的”,原来可以强制转换。
作为VC初学者,感觉VC的类型众多,各种转换方法也众多,开始的时候,我们应该最先尝试的是强制转换,又过于简单。