最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
CString、BSTR和LPCTSTR应用与区别
时间:2011-01-19 编辑:简简单单 来源:一聚教程网
cstring、bstr和lpctstr应用与区别
一、定义
cstring 是一种很有用的数据类型。它们很大程度上简化了mfc中的许多操作,使得mfc在做字符串操作的时候方便了很多。不管怎样,使用cstring有很多特殊的技巧,特别是对于纯c背景下走出来的程序员来说有点难以学习。
1、cstring:动态的tchar数组。它是一个完全独立的类,封装了+等操作符和字符串操作方法。
2、bstr:专有格式的字符串(需要使用系统函数来操纵)。定义为:typedef olechar far* bstr
由于 bstr 是记数 unicode 字符串,你可以用标准转换方法来创建 8 位的 cstring。实际上,这是 cstring 内建的功能。在 cstring 中 有特殊的构造函数可以把 ansi 转化成 unicode,也可以把unicode 转化成 ansi。你同样可以从 variant 类型的变量中获得 bstr 类型的字符串,variant 类型是 由各种 com 和 automation (自动化)调用返回的类型。
3、lpctstr:常量的tchar指针。定义为:typedef const char* lpctstr
lpctstr类型: l表示long指针 这是为了兼容windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。 p表示这是一个指针 c表示是一个常量 t表示在win32环境中, 有一个_t宏 str表示这个变量是一个字符串
二、要点
1、char*:指向ansi字符数组的指针,其中每个字符占8位(有效数据是除掉最高位的其他七位),它保持
了与传统c/c++的兼容。
2、lps教程tr:指向一个以“