Unicode宽字节字符集[VC/C++编程]
本文“Unicode宽字节字符集[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1. 若何获得一个既包含单字节字符又包含双字节字符的字符串的字符个数?
可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包含单字节也包含双字节)字符串.
调用strlen函数,无法真正理解字符串中毕竟有多少字符,它只能奉告你到达末尾的0之前有多少个字节.
2. 若何对DBCS(双字节字符集)字符串举行操作?
函数 描写
PTSTR CharNext ( LPCTSTR ); 返回字符串中下一个字符的地址
PTSTR CharPrev ( LPCTSTR, LPCTSTR ); 返回字符串中上一个字符的地址
BOOL IsDBCSLeadByte( BYTE ); 假如该字节是DBCS字符的第一个字节,则返回非0值
3. 为什么要利用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字符串.
4. 若何编写Unicode源代码?
Microsoft公司为Unicode计划了WindowsAPI,这样,可以尽大概削减代码的影响.实际上,可以编写单个源代码文件,以便利用大概不利用Unicode来对它举行编译.只需求定义两个宏(UNICODE和_UNICODE),便可以改正然后重新编译该源文件.
_UNICODE宏用于C运行期头文件,而UNICODE宏则用于Windows头文件.当编译源代码模块时,普通必须同时定义这两个宏.
5. Windows定义的Unicode数据范例有哪些?
数据范例 阐明
WCHAR Unicode字符
PWSTR 指向Unicode字符串的指针
PCWSTR 指向一个恒定的Unicode字符串的指针
对应的ANSI数据范例为CHAR,LPSTR和LPCSTR.
ANSI/Unicode通用数据范例为TCHAR,PTSTR,LPCTSTR.
以上是“Unicode宽字节字符集[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |