在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

浙公网安备 33010602011771号