设为首页 加入收藏

TOP

Unicode简介(十三)
2010-12-30 21:07:57 来源: 作者: 【 】 浏览:12505
Tags:Unicode 简介
_UNICODE识别字,那么一个称作__T的巨集就定义如下:

#define __T(x) L##x

这是相当晦涩的语法,但合乎ANSI C标准的前置处理器规范。那一对井字号称为「粘贴符号(token paste)」,它将字母L添加到巨集引数上。因此,如果巨集引数是"Hello!",则L##x就是L"Hello!"。

如果没有定义_UNICODE识别字,则__T巨集只简单地定义如下:

#define __T(x) x

此外,还有两个巨集与__T定义相同:

#define _T(x) __T(x)
#define _TEXT(x) __T(x)

在Win32 console程式中使用哪个巨集,取决於您喜欢简洁还是详细。基本地,必须按下述方法在_T或_TEXT巨集内定义字串文字:

_TEXT ("Hello!")

这样做的话,如果定义了_UNICODE,那么该串将解释为宽字元的组合,否则解释为8位元的字元字串。

宽字元和WINDOWS
 

Windows NT从底层支援Unicode。这意味著Windows NT内部使用由16位元字元组成的字串。因为世界上其他许多地方还不使用16位元字串,所以Windows NT必须经常将字串在作业系统内转换。Windows NT可执行为ASCII、Unicode或者ASCII和Unicode混合编写的程式。即,Windows NT支援不同的API函式呼叫,这些函式接受8位元或16位元的字串(我们将马上看到这是如何动作的。)

相对於Windows NT,Windows 98对Unicode的支援要少得多。只有很少的Windows 98函式呼叫支援宽字串(这些函式列在《Microsoft Knowledge Base article Q125671》中;它们包括MessageBox)。如果要发行的程式中只有一个.EXE档案要求在Windows NT和Windows 98下都能执行,那么就不应该使用Unicode,否则就不能在Windows 98下执行;尤其程式不能呼叫Unicode版的Windows函式。这样,将来发行Unicode版的程式时会处於更有利的位置,您应试著编写既为ASCII又为Unicode编译的原始码。这就是本书中所有程式的编写方式。

Windows表头档案类型
 

正如您在第一章所看到的那样,一个Windows程式包括表

首页 上一页 10 11 12 13 14 15 16 下一页 尾页 13/21/21
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇视窗和讯息 下一篇没有了

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: