■ E n u m R e s o u r c e Ty p e s W ■ L s t r l e n W
■ E x t Te x t O u t W ■ M e s s a g e B o x E x W
■ F i n d R e s o u r c e W ■ M e s s a g e B o x W
■ F i n d R e s o u r c e E x W ■ Te x t O u t W
■ G e t C h a r Wi d t h W ■ Wi d e C h a r To M u l t i B y t e
■ G e t C o m m a n d L i n e W ■ M u l t i By t e To Wi d e C h a r
可惜的是,这些函数中有许多函数在Windows 98中会出现各种各样的错误。有些函数无法
使用某些字体,有些函数会破坏内存堆栈,有些函数会使打印机驱动程序崩溃,等等。如果要
使用这些函数,必须对它们进行大量的测试。即使这样,可能仍然无法解决问题。因此必须向
用户说明这些情况。
2.5 Windows CE与U n i c o d e
Windows CE操作系统是为小型设备开发的,这些设备的内存很小,并且不带磁盘存储器。
你可能认为,由于 M i c r o s o f t 公司的主要目标是建立一种尽可能小的操作系统,因此它会使用
A N S I 作为自己的字符集。但是M i c r o s o f t公司并非鼠目寸光,他们懂得,Windows CE的设备要
在世界各地销售,他们希望降低软件开发成本,这样就能更加容易地开发应用程序。为此,
Windows CE本身就是使用U n i c o d e的一种操作系统。
但是,为了使Windows CE尽量做得小一些,M i c r o s o f t公司决定完全不支持ANSI Wi n d o w s
函数。因此,如果要为Windows CE开发应用程序,必须懂得U n i c o d e,并且在整个应用程序中
使用U n i c o d e。
2.6 需要注意的问题
下面让我们进一步明确一下“M i c r o s o f t公司对U n i c o d e支持的情况”:
• Windows 2000既支持U n i c o d e,也支持A N S I,因此可以为任意一种开发应用程序。
• Windows 98只支持A N S I ,只能为A N S I开发应用程序。
• Windows CE只支持U n i c o d e,只能为U n i c o d e开发应用程序。
虽然M i c r o s o f t公司试图让软件开发人员能够非常容易地开发在这 3种平台上运行的软件,
但是U n i c o d e与A N S I之间的差异使得事情变得困难起来,并且这种差异通常是我遇到的最大的
问题之一。请不要误解, M i c r o s o f t公司坚定地支持U n i c o d e ,并且我也坚决鼓励你使用它。不
过你应该懂得,你可能遇到一些问题,需要一定的时间来解决这些问题。建议你尽可能使用
U n i c o d e。如果运行Windows 98,那么只有在必要时才需转换到A N S I 。
不过,还有另一个小问题你应该了解,那就是 C O M 。
2.7 对C O M的简单说明
当M i c r o s o f t公司将C O M从1 6 位Wi n d o w s转换成Wi n 3 2 时,公司作出了一个决定,即需要字
符串的所有C O M接口方法都只能接受U n i c o d e字符串。这是个了不起的决定,因为 C O M通常用
于使不同的组件能够互相进行通信,而U n i c o d e则是传递字符串的最佳手段。
如果你为Windows 2000或Windows CE开发应用程序,并且也使用C O M ,那么你将会如虎
添翼。在你的整个源代码中使用 U n i c o d e,将使与操作系统进行通信和与 C O M 对象进行通信的
操作变成一件轻而易举的事情。
如果你为Windows 98开发应用程序,并且也使用 C O M ,那么将会遇到一些问题。C O M 要
14计计第一部分 程序员必读