文本数据类型强调说明
来源:互联网 发布:免费wifi无线上网软件 编辑:程序博客网 时间:2024/04/28 19:09
TCHAR/_TCHAR: 是微软特有的通用文本数据类型,可以根据编译选项映射为Unicode字符、MBCS字符或是ANSI字符。使用这种字符类型编写的通用代码可以编译为Unicode、MBCS、ANSI三种字符集中的任何一种。
tchar.h是微软特有的C运行时库头文件,它定义了通用文本类型_TCHAR,当我们没有定义__STDC__预编译符号时(默认时,VC没有定义此符号),表示不需要遵从ANSI命名要求。在这中情况下,如果通用文本数据类型还没有定义,tchar.h文件也会定义另外一个符号TCHAR作为其别名。
winnt.h 是微软特定的Win32操作系统头文件,把通用文本数据类型定义为TCHAR。此文件是操作系统特定的,
简单的说:C运行时库定义了_TCHAR类型, 而Windows操作系统定义了TCHAR类型
规范点说明:
1、当编写基于Windows的COM组件时,在组件内部,通常我们应该使用TCHAR字符类型来表示组件内部使用的字符
2、与操作系统交互的所有字符也应该使用TCHAR
OLECHAR: 是COM使用的字符数据类型,用来描述COM在特定平台上使用的文本数据类型。COM中的文本字符串是以NUL字符结尾的OLECHAR字符数组,对应的字符串指针是LPOLESTR 和LPCOLESTR
COM接口方法的文本字符串参数应该用LPOLESTR 或LPCOLESTR
BSTR:COM组件使用的特殊字符串类型,它是一种带长度前缀、含OLECHAR字符数组的指针。特性如下:a、 它指向字符数组的第一个字符,长度是以整数存储在数组中紧接第一个字符前面的位置
b、字符数组以NUL字符结束
c、长度以字节为单位,而不是字符,不包括终止字符NUL
d、字符数组内部可能包括有效的NUL字符
e、必须使用SysAllocString和SysFreeString函数进行分配和释放
f、NULL的BSTR指针表示空字符串
g、BSTR是非引用计数,两次引用同一字符串的内容必须指向两个单独的BSTR。即:拷贝一个BSTR意味这字符串的复制操作,而不是简单的指针拷贝。
CComBSTR:BSTR的ATL封装类,将语义繁多的BSTR的细节封装成一个可重用类。其内部成员是一个BSTR类型的变量
规范点说明:
3、如果需要调用COM方法,并传递一些字符串,必须根据方法的参数向其传递OLECHAR或者BSTR字符串或OLECHAR*
4、如果是其他语言定义的接口,一般来说字符串类型应该是BSTR数据类型。
5、OLECHAR* 和BSTR不能等同使用,OLECHAR* 是以NUL结尾的字符串指针, 而BSTR是一个以NUL结尾但中间可能有一个或多个NUL字符的指针。
- 文本数据类型强调说明
- Markdown 语法(2)- 文本强调
- Access数据库的文本、备注数据类型的COLUMN_FLAGS说明
- TeX-文本的强调与词间空格
- html中强调文本的标签:<span>,<em>和<strong>
- HTML中强调文本的标签:<span>,<em>和<strong>
- Product文本格式说明
- DB2 数据类型说明
- SQL 2005数据类型说明
- SQL 2005 数据类型说明
- SQL 2005数据类型说明
- SQL 2005数据类型说明
- SQL 2005数据类型说明
- 数据类型说明(FLEX)
- MySQL数据类型说明
- SQL 2005数据类型说明
- Mysql数据类型简明说明
- sqlserver2008数据类型说明
- 做运维最苦逼。。
- 全面接触Java集合框架
- 黑马程序员---接口与抽象类的区别?
- c#简单绘图
- C++类<一>:类的定义和声明&类的作用域
- 文本数据类型强调说明
- POJ 3461 Oulipo
- OpenCL学习笔记(一)
- C++类<二>:构造函数
- 开发者必备的6款源码搜索引擎
- 字节序
- oracle安装后eclipse版本过低
- uboot下的UART驱动
- C++类<三>:友元