博客日历
2025年07月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
C++字符串类型完全指南
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++字符串相关文章
C++字符串完全指引之一 —— Win32 字符编码
The Complete Guide to C++ Strings, Part I - Win32 Character Encodings
http://www.vckbase.com/document/viewdoc/?id=1096
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
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字符串,再调用字符串类的构造函数。
上一篇: 使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
下一篇: 忙了一天,转个好玩的SQL语句
分类:Win32/C++ 查看次数:9183 发布时间:2009/6/20 10:06:39