BSTR ASCII Unicode _T 宏

来源:互联网 发布:河北seo按效果付费 编辑:程序博客网 时间:2024/04/29 16:50

(1)Basic String (一个与自动化相兼容的类型)

它被描述成一个与自动化相兼容的类型,由于操作系统提供相应的API(应用程序接口)如(SysAllocString)来管理它以及一些默认的调度代码。因此BSTR实际上就是一个COM字符串。

为什么需要BSTR?

COM是一种跨编程语言的平台,需要提供语言无关的数据类型。多数编程语言有自己的字符串表示。

●C++ 字符串是以0结束的ASCII或Unicode字符数组。
●Visual Basic字符串是一个ASCII字符数组加上表示长度的前缀。
●Java字符串是以0结束的Unicode字符数组。
需要定义一种通用的字符串类型,可以很容易的匹配到不同编程语言。C++中,就是BSTR
(2) ASCII(美国信息交换标准代码)Unicode(统一码,万国码)

ASCII表示一种编码规则,制定特定的7位或者8位二进制数组合来表示128或者256种可能的字符。

Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。

(3)_T

_T是一个宏,作用是让你的新恒旭支持Unicode编码。因为Windows使用两种字符集:ANSI和UNICODE。ANSI即ACSII通常使用单字节方式,但这种方式处理像中文这样的双字节字符不方便,容易出现半个汉字的情况,而后者是双字节方式,方便处理双字节字符。

如果编译一个程序为ANSI方式,_T无任何作用,而如果编译一个UNICODE方式,则编译器会把“Hello”字符串以UNCODE方式保存。_T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存。

(4)宏(Marco)

c程序提供的预处理功能之一。包括带参数的宏定义和不带参数的宏定义。具体是指用一个指定的标志符来进行简单的字符串替换或者进行阐述替换。形式为:

#define标志符[(参数表)] 字符串


0 0
原创粉丝点击