六个准则:
- 将文本串视为字符数组,而不是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
|
| 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
本文介绍了文本处理中的六个核心准则,包括如何正确使用字符数组、数据类型映射等,并提供了不同类型系统下的数据类型转换指导。
924

被折叠的 条评论
为什么被折叠?



