C++中的字符串种类繁多, 下面是VC++中可以直接使用的各种字符串。
1.基本字符串类型
char*(包括:CHAR*,TCHAR*,LPSTR, LPCSTR, LPTSTR, LPCTSTR)
wchar_t*(包括:WCHAR*,TCHAR*,LPWSTR,LPCWSTR,LPTSTR,LPCTSTR,LPOLESTR, LPCOLESTR)
BSTR
VARIANT

关于BSTR,在WTypes.h 中有一个BSTR的定义:
typedef wchar_t WCHAR;
typedef WCHAR OLECHAR;
typedef /* [wire_marshal] */ OLECHAR *BSTR;
但是BSTR却不等同于OLECHAR*,这一点比较奇怪所有对BSTR的操作都必须用专用函数(Sys*系列)进行,OLECHAR*其实就是wchar_t*。在调试器中观察发现,OLECHAR*型变量的地址就是首字符,BSTR型变量的首地址也是第一个字符,但是BSTR型变量前边还有4个字节来表示字符串长度。这说明如果仅用作读取,const OLECHAR*和BSTR是可以互换的。
2.C++中的各种字符串类
string
wstring
CString(包括CStringT, CStringA, CStringW,以及类似的CHString)
_bstr_t
CComBSTR
_variant_t
CComVariant
COleVariant
 
3.网上的C++字符串相关文章
http://www.vckbase.com/document/viewdoc/?id=1082
C++字符串完全指引之一 —— Win32 字符编码

http://www.codeproject.com/KB/string/cppstringguide1.aspx
The Complete Guide to C++ Strings, Part I - Win32 Character Encodings

http://www.vckbase.com/document/viewdoc/?id=1096
C++字符串完全指引之二 —— 字符串封装类

http://www.codeproject.com/KB/string/cppstringguide2.aspx
The Complete Guide to C++ Strings, Part II - String Wrapper Classes

 http://blog.csdn.net/itmail/archive/2007/08/23/1756122.aspx
VC++ Windows平台字符透明编程大总结
4.总结

要转换各种字符串,最简单的思路是:先转换为C Style字符串,再调用字符串类的构造函数。

 

 


本文链接地址: C++字符串类型完全指南
https://blog.qingfengju.com/index.asp?id=87

上一篇: 使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
下一篇: 忙了一天,转个好玩的SQL语句

分类:Win32/C++ 查看次数:9183 发布时间:2009/6/20 10:06:39