windows使用的各种字符串

来源:互联网 发布:网络属于强电还是弱电 编辑:程序博客网 时间:2024/05/17 06:56

关键字:LPSTR、LPCSTR、LPWSTR、LPCWSTR、LPTSTR、LPCTSTR、CString 、CStringW、char、TCHAR、wchar_t、WCHAR

(1)char和wchar_t是c++的数据类型,wchar_t是用unicdoe进行编码;而vs编译器默认用ansi编码,所以用vs调试存储汉字的wchar_t时会出现乱码

(2)string是STL中的模板类

(3)CString是MFC(Microsoft Fundamental Class)(MFC目录:vs安装目录\VC\atlmfc)中的模板类,不能跨平台,只能在windows下使用

(4)LPSTR、LPCSTR、LPWSTR、LPCWSTR、LPTSTR、LPCTSTR、TCHAR、WCHAR是windows kits(目录为:C:\Program Files (x86)\Windows Kits)中用命令typedef重定义的类名,每一种类型和编码集、char/wchar_t有关,关系如下:


(5)string到char *的转换

str.c_str();

(6)string到CString

由于char *可以直接转换到CString,所以先通过c_str()将string转换成char *

CString cstr = str.c_str()

(7)CString、string、char *之间的相互装换

参考:http://blog.csdn.net/sszgg2006/article/details/8667945

http://blog.csdn.net/flydream0/article/details/8543525/ (unicode字符集下CString对char *的转换)

(8)L“<字符串>” 

“<字符串>”是const char *型的,L“<字符串>”是将const char *型转化为const wchar_t *型(unicode编码)

在ansi编码下,_T("<字符串>")  = “<字符串>”

在unicode编码下,_T("<字符串>")  = L“<字符串>”

注意:"L"后面只能加字符串常量,不能加变量。

(9)char *和LPWSTR之间的转换

http://blog.csdn.net/lanshuihaiyu/article/details/8537192


0 0
原创粉丝点击