编写Unicode程序的六个准则

六个准则:

  1. 将文本串视为字符数组,而不是chars数组或者字节数组。
  2. 将通用数据类型(如 TCHAR 和 PTSTR )用于文本字符和字符串。
  3. 将显式数据类型(如 BYTE 和 PBYTE )用于字节、字节指针和数据缓存。
  4. 将 TEXT 宏用于原义字符和字符串。
  5. 执行全局性替换(如用 PTSTR 替换PSTR )。
  6. 字符串运算公式: sizeof(szBuffer) = nCharacters * sizeof(TCHAR)。比如传递缓存大小应该用 sizeof(szBuffer)/sizeof(TCHAR) 替换 sizeof(szBuffer);分配内存用 nCharacters * sizeof(TCHAR )替换 nCharacters。

一些说明:

RTL库:typedef unsigned short wchar_t;

    _UNICODE宏:wcs 替换 str,比如 wcscmp() 替换 strcmp();Tchar.h 替换 String.h

Generic-Text Data Type Mappings


Generic-text
data type name

SBCS (_UNICODE,
_MBCS not
defined)

_MBCS
defined

_UNICODE
defined

_TCHAR

char

char

wchar_t

_tfinddata_t

_finddata_t

_finddata_t

_wfinddata_t

_tfinddata64_t

__finddata64_t

__finddata64_t

__wfinddata64_t

_tfinddatai64_t

_finddatai64_t

_finddatai64_t

_wfinddatai64_t

_TINT

int

int

wint_t

_TSCHAR

signed char

signed char

wchar_t

_TUCHAR

unsigned char

unsigned char

wchar_t

_TXCHAR

char

unsigned char

wchar_t

_T or _TEXT

No effect (removed by preprocessor)

No effect (removed by preprocessor)

L (converts following character or string to its Unicode counterpart)

Windows库:

    UNICODE宏:xxA() 或者 xxW()

    PTSTR --> PSTR 或者 PWSTR (同LP或者PC或者LPC)

    TCHAR --> CHAR 或者 WCHAR

    TBYTE --> BYTE 或者 WBYTE

   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值