您的位置:首页 > 其它

编写Unicode程序的六个准则

2007-07-30 23:58 204 查看
六个准则:

将文本串视为字符数组,而不是chars数组或者字节数组。

将通用数据类型(如 TCHAR 和 PTSTR )用于文本字符和字符串。

将显式数据类型(如 BYTE 和 PBYTE )用于字节、字节指针和数据缓存。

将 TEXT 宏用于原义字符和字符串。

执行全局性替换(如用 PTSTR 替换PSTR )。

字符串运算公式: 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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: