Unicode及Ansi

来源:互联网 发布:优化设计高一政治答案 编辑:程序博客网 时间:2024/05/16 10:49

1、windows中所有版本都支持unicode,windows函数处理字符串通常都有两个版本(ansi/unicode)。如:CreateWindowEx支持Unicode及Ansi,是因为CreateWindowEx函数重载了两个函数CreateWindowExW(Unicode)及CreateWindowExA(Ansi)。在windows函数处理中是否使用Unicode字符串处理函数的按钮:是否定义Unicode。
2、com从16为windows移植到win32后只支持Unicode。
3、在使用c函数时候,c运行库提供了两套函数来处理ansi字符串和unicode字符串。例如strlen是返回ansi字符串长度的函数,另外wcslen是返回unicode字符串长度的函数,两个函数在String.h中各有自己的原型。为了是代码既能用ansi编译,又能用unicode编译,可以包含TChar.h,该文件中定义了宏:
#indef _UNICODE
#define _tcslen wcslen
#else
#define _tcslen strlen
#endif
通过上面宏,可以实现只调用_tcslen就可以编译ansi及unicode字符串。

4、不属于C++的部分,C运行库始终会为它们加下划线前缀,但windows除外。所以,为提高程序的一致性及兼容性,在定义UNICODE同时要定义_UNICODE。

原创粉丝点击