Briant

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

  在Windows CE中使用的是Unicode16字符编码标准表示字符的,而不是使用ASCII标准表示字符的。这就意味着Windows CE程序中所有的字符都是占两个字节的。

  这样的话在再编程的时候就要注意以下两点:

    1.在表示字符类型的时候不能再使用char了,而应该使用TCHAR。

    2.表示字符的时候应该明确其占用两个字节。只需在字符或字符串前简单地加一个L即可。

    TCHAR tcExample;

    tcExample = L'\\';

    CONST TCHAR tcUserPath[] = L\\ResidentFlash\\;

将字符或字符串编译为两个字节的宏 L, _T() , TEXT(), _TEXT()

  L是用来标志一个字符(串)为宽字符(串)。

  _T()与TCHAR一样,根据系统的不同会把字符或者字符串编译成不同的长度。

  

字符串操作函数

  注意:如果在程序中使用了TCHAR,那么就不应该使用ANSI的strXXX函数或者Unicode的wcsXXX函数了,而必须使用tchar.h中定义的_tcsXXX函数。

拓展:

  Windows CE之所以使用Unicode16来表示字符串是因为Unicode 允许相当简单将程序移植到不同的国际市场,因为世界上所有已知的字符都可以用65,536个Unicode 值里的一个来表示。

  TCHAR在MS Windows 95和98中定义为char型,在Windows 2000,XP,Windows CE中,使用Unicode功能的程序里,TCHAR定义为unsigned short类型。这些类型定义,允许在基于ASCII和Unicode的操作系统上源代码级的兼容。

    #ifdef UNICODE
    typedef char TCHAR;
  #else
    typede wchar_t TCHAR;
  #endif

参考文章:

  http://blog.csdn.net/Linruin/archive/2010/01/14/5190122.aspx

posted on 2011-05-17 23:19  Briant  阅读(252)  评论(0)    收藏  举报