关于unicode

为什么要使用Unicode?

(1) 可以很容易地在不同语言之间进行数据交换。

(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。

(3) 提高应用程序的运行效率。

Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给

 它传递一个ANSI字符串,那么系统首先要将字符串转换成Unicode,然后将Unicode

字符串传递给操作系统。如果希望函数返回ANSI字符串, 系统就会首先将Unicode

字符串转换成ANSI字符串,然后将结 果返回给你的应用程序。进行这些字符串的转

换需要占用系统的时间和内存。通过从头开始用Unicode来开发应用程序,就能够使你

的应用程序 更加有效地运行。

Windows CE 本身就是使用Unicode的一种操作系统,完全不支持ANSI Windows函数

Windows 98 只支持ANSI,只能为ANSI开发应用程序。

Microsoft公司将COM从16位Windows转换成Win32时,公司决定需要字符串的所有

COM接口 方法都只能接受Unicode字符串。

如何编写Unicode源代码?

Microsoft公司为Unicode设计了WindowsAPI,这样,可以尽量减少代码的影响。实

 际上 ,可以编写单个源代码文件,以便使用或者不使用Unicode来对它进行编译。

只需要定义两个宏(UNICODE和_UNICODE),就可以修改然后重新编译该源文件。

_UNICODE宏用于C运行期头文件,而UNICODE宏则用于Windows头文件。当编译源代

 码模块时,通常必须同时定义这两个宏。

Windows定义的Unicode数据类型有哪些?

数据类型 说明

WCHAR Unicode字符

PWSTR 指向Unicode字符串的指针

PCWSTR 指向一个恒定的Unicode字符串的指针

对应的ANSI数据类型为CHAR,LPSTR和LPCSTR。

ANSI/Unicode通用数据类型为TCHAR,PTSTR,LPCTSTR。

如何对Unicode进行操作?

字符集 特性 实例

ANSI 操作函数以str开头 strcpy

Unicode 操作函数以wcs开头 wcscpy

MBCS 操作函数以_mbs开头 _mbscpy

ANSI/Unicode 操作函数以_tcs开头 _tcscpy(C运行期库)

ANSI/Unicode 操作函数以lstr开头 lstrcpy(Windows函数)

所有新的和未过时的函数在Windows2000中都同时拥有ANSI和Unicode两个版本。

ANSI版本函数结尾以A表示;Unicode版本函数结尾以W表示。

Windows会如下定义:

#ifdef UNICODE

#define CreateWindowEx CreateWindowExW

#else

#define CreateWindowEx CreateWindowExA

#endif // !UNICODE

如何表示Unicode字符串常量?

字符集 实例

ANSI “string”

Unicode L“string”

ANSI/Unicode T(“string”)或_TEXT(“string”)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值