|
このページは大阪弁化フィルタによって翻訳生成されたんですわ。 |
??文档?要的?明了如何修改?的C/C++代?使之支持Unicode。在?里并不准? 解?太多相?的技???并且我得假定?已?基本熟悉Microsoft支持Unicode的方式。 它的主要目的是方便???相?的数据?型和函数,以及修正相?的?写??。
如果?使用Microsoft C++??器,?可能遇到与流式 I/O相?的3???:
用心:??cout/wcout, cin/wcin等并没有相?的 TCHAR 版本。如果?需要在ANSI/Unicode??模式下?? 代?,?可能需要自己定?一个名字?似"tout"的宏。
重新
考?是否要自己?理?些事情。借助于一家Unicode咨?公司,然后??的??集中精力做他?擅?的事情。(?,
我?也要?生?...)
|
Unicode字?序??(BOM,Byte Order Marker) 是Unicode字符 U+FEFF。(它也能表示一个被称作 Zero Width No-break Space 的字符)。U+FFFE ?个代?点在Unicode中是非法的,它永?不??出?在一个Unicode字符流中。所以BOM可以作?放置于文件(或者一个字符串)的起始作?字? 序的指示器。?UTF-16??而言,如果第一个字符的?是FE FF 那?文本和?取文本的机器有相同的字?序。如果是 FF FE,那?有相反的字?序并且需要?? 个16-bit字按字?逆序。同?的,BOM指示了UTF-32??的文本的字?序。 用心不是所有的文件都以Unicode字?序???始。事?上,Unicode?准称若不以Unicode字?序?? (BOM)?始(数据)就必?被表示成big-endian形式。 字符 U+FEFF 同?作?不同Unicode??方式的??。左翼?的表格?明了 U+FEFF 在?一?Unicode??方式中的?。用心:按照定?,???UTF-16BE, UTF-32BE, UTF-32LE or UTF-16LE 的文本不??有BOM,字?序已?由??本身指出了。 ?于使用 SCSU (Standard Compression Scheme for Unicode) 算法???的文本,也有一个推荐的?名。 |
| ANSI版本 | ?字符版本 | 宏定?版本(TCHAR) |
|---|---|---|
| EOF | WEOF | _TEOF |
| _environ | _wenviron | _tenviron |
| _pgmptr | _wpgmptr | _tpgmptr |
| ANSI版本 | ?字符版本 | 宏定?版本(TCHAR) |
|---|---|---|
| char | wchar_t | _TCHAR |
| _finddata_t | _wfinddata_t | _tfinddata_t |
| __finddata64_t | __wfinddata64_t | _tfinddata64_t |
| _finddatai64_t | _wfinddatai64_t | _tfinddatai64_t |
| int | wint_t | _TINT |
| signed char | wchar_t | _TSCHAR |
| unsigned char | wchar_t | _TUCHAR |
| char | wchar_t | _TXCHAR |
| L | _T 或者 _TEXT | |
| LPSTR (char *) |
LPWSTR (wchar_t *) |
LPTSTR (_TCHAR *) |
| LPCSTR (const char *) |
LPCWSTR (const wchar_t *) |
LPCTSTR (const _TCHAR *) |
| LPOLESTR (For OLE) |
LPWSTR | LPTSTR |
有很多Windows API函数会根据宏 UNICODE 是 否被定?而??成不同形式。那些需要同?操作ANSI字符和?字符的模?需要了解?一点。否?,??使用宏定?版本的名字,??的?就只需要定?宏 UNICODE 并且重新??程序。
下列列表并没有列?所有的有ANSI和?字符?个版本的API,只列?了与字符和字符串?理相?的一些。如果需要?看与代??和地区相 ? 的API??看WinNLS.h?文件。
| ANSI版本 | ?字符版本 | 宏定?版本(TCHAR) |
|---|---|---|
| CharLowerA | CharLowerW | CharLower |
| CharLowerBuffA | CharLowerBuffW | CharLowerBuff |
| CharNextA | CharNextW | CharNext |
| CharNextExA | CharNextExW | CharNextEx |
| CharPrevA | CharPrevW | CharPrev |
| CharPrevExA | CharPrevExW | CharPrevEx |
| CharToOemA | CharToOemW | CharToOem |
| CharToOemBuffA | CharToOemBuffW | CharToOemBuff |
| CharUpperA | CharUpperW | CharUpper |
| CharUpperBuffA | CharUpperBuffW | CharUpperBuff |
| CompareStringA | CompareStringW | CompareString |
| FoldStringA | FoldStringW | FoldString |
| GetStringTypeA | GetStringTypeW | GetStringType |
| GetStringTypeExA | GetStringTypeExW | GetStringTypeEx |
| IsCharAlphaA | IsCharAlphaW | IsCharAlpha |
| IsCharAlphaNumericA | IsCharAlphaNumericW | IsCharAlphaNumeric |
| IsCharLowerA | IsCharLowerW | IsCharLower |
| IsCharUpperA | IsCharUpperW | IsCharUpper |
| LoadStringA | LoadStringW | LoadString |
| lstrcatA | lstrcatW | lstrcat |
| lstrcmpA | lstrcmpW | lstrcmp |
| lstrcmpiA | lstrcmpiW | lstrcmpi |
| lstrcpyA | lstrcpyW | lstrcpy |
| lstrcpynA | lstrcpynW | lstrcpyn |
| lstrlenA | lstrlenW | lstrlen |
| OemToCharA | OemToCharW | OemToChar |
| OemToCharBuffA | OemToCharBuffW | OemToCharBuff |
| wsprintfA | wsprintfW | wsprintf |
| wvsprintfA | wvsprintfW | wvsprintf |
函数按照ANSI版本的ASCII字母?序排序,方便??到相?的Unicode版本。
| ANSI版本 | ?字符版本 | 宏定?版本(TCHAR) |
|---|---|---|
| _access | _waccess | _taccess |
| _atoi64 | _wtoi64 | _tstoi64 |
| _atoi64 | _wtoi64 | _ttoi64 |
| _cgets | _cgetws | cgetts |
| _chdir | _wchdir | _tchdir |
| _chmod | _wchmod | _tchmod |
| _cprintf | _cwprintf | _tcprintf |
| _cputs | _cputws | _cputts |
| _creat | _wcreat | _tcreat |
| _cscanf | _cwscanf | _tcscanf |
| _ctime64 | _wctime64 | _tctime64 |
| _execl | _wexecl | _texecl |
| _execle | _wexecle | _texecle |
| _execlp | _wexeclp | _texeclp |
| _execlpe | _wexeclpe | _texeclpe |
| _execv | _wexecv | _texecv |
| _execve | _wexecve | _texecve |
| _execvp | _wexecvp | _texecvp |
| _execvpe | _wexecvpe | _texecvpe |
| _fdopen | _wfdopen | _tfdopen |
| _fgetchar | _fgetwchar | _fgettchar |
| _findfirst | _wfindfirst | _tfindfirst |
| _findnext64 | _wfindnext64 | _tfindnext64 |
| _findnext | _wfindnext | _tfindnext |
| _findnexti64 | _wfindnexti64 | _tfindnexti64 |
| _fputchar | _fputwchar | _fputtchar |
| _fsopen | _wfsopen | _tfsopen |
| _fullpath | _wfullpath | _tfullpath |
| _getch | _getwch | _gettch |
| _getche | _getwche | _gettche |
| _getcwd | _wgetcwd | _tgetcwd |
| _getdcwd | _wgetdcwd | _tgetdcwd |
| _ltoa | _ltow | _ltot |
| _makepath | _wmakepath | _tmakepath |
| _mkdir | _wmkdir | _tmkdir |
| _mktemp | _wmktemp | _tmktemp |
| _open | _wopen | _topen |
| _popen | _wpopen | _tpopen |
| _putch | _putwch | _puttch |
| _putenv | _wputenv | _tputenv |
| _rmdir | _wrmdir | _trmdir |
| _scprintf | _scwprintf | _sctprintf |
| _searchenv | _wsearchenv | _tsearchenv |
| _snprintf | _snwprintf | _sntprintf |
| _snscanf | _snwscanf | _sntscanf |
| _sopen | _wsopen | _tsopen |
| _spawnl | _wspawnl | _tspawnl |
| _spawnle | _wspawnle | _tspawnle |
| _spawnlp | _wspawnlp | _tspawnlp |
| _spawnlpe | _wspawnlpe | _tspawnlpe |
| _spawnv | _wspawnv | _tspawnv |
| _spawnve | _wspawnve | _tspawnve |
| _spawnvp | _wspawnvp | _tspawnvp |
| _spawnvpe | _wspawnvpe | _tspawnvpe |
| _splitpath | _wsplitpath | _tsplitpath |
| _stat64 | _wstat64 | _tstat64 |
| _stat | _wstat | _tstat |
| _stati64 | _wstati64 | _tstati64 |
| _strdate | _wstrdate | _tstrdate |
| _strdec | _wcsdec | _tcsdec |
| _strdup | _wcsdup | _tcsdup |
| _stricmp | _wcsicmp | _tcsicmp |
| _stricoll | _wcsicoll | _tcsicoll |
| _strinc | _wcsinc | _tcsinc |
| _strlwr | _wcslwr | _tcslwr |
| _strncnt | _wcsncnt | _tcsnbcnt |
| _strncnt | _wcsncnt | _tcsnccnt |
| _strncnt | _wcsncnt | _tcsnccnt |
| _strncoll | _wcsncoll | _tcsnccoll |
| _strnextc | _wcsnextc | _tcsnextc |
| _strnicmp | _wcsnicmp | _tcsncicmp |
| _strnicmp | _wcsnicmp | _tcsnicmp |
| _strnicoll | _wcsnicoll | _tcsncicoll |
| _strnicoll | _wcsnicoll | _tcsnicoll |
| _strninc | _wcsninc | _tcsninc |
| _strnset | _wcsnset | _tcsncset |
| _strnset | _wcsnset | _tcsnset |
| _strrev | _wcsrev | _tcsrev |
| _strset | _wcsset | _tcsset |
| _strspnp | _wcsspnp | _tcsspnp |
| _strtime | _wstrtime | _tstrtime |
| _strtoi64 | _wcstoi64 | _tcstoi64 |
| _strtoui64 | _wcstoui64 | _tcstoui64 |
| _strupr | _wcsupr | _tcsupr |
| _tempnam | _wtempnam | _ttempnam |
| _ui64toa | _ui64tow | _ui64tot |
| _ultoa | _ultow | _ultot |
| _ungetch | _ungetwch | _ungettch |
| _unlink | _wunlink | _tunlink |
| _utime64 | _wutime64 | _tutime64 |
| _utime | _wutime | _tutime |
| _vscprintf | _vscwprintf | _vsctprintf |
| _vsnprintf | _vsnwprintf | _vsntprintf |
| asctime | _wasctime | _tasctime |
| atof | _wtof | _tstof |
| atoi | _wtoi | _tstoi |
| atoi | _wtoi | _ttoi |
| atol | _wtol | _tstol |
| atol | _wtol | _ttol |
| 字符比? | 映射?宏或者inline 函数 | _tccmp |
| 字符拷? | 映射?宏或者inline 函数 | _tccpy |
| 字符?度 | 映射?宏或者inline 函数 | _tclen |
| ctime | _wctime | _tctime |
| fgetc | fgetwc | _fgettc |
| fgets | fgetws | _fgetts |
| fopen | _wfopen | _tfopen |
| fprintf | fwprintf | _ftprintf |
| fputc | fputwc | _fputtc |
| fputs | fputws | _fputts |
| freopen | _wfreopen | _tfreopen |
| fscanf | fwscanf | _ftscanf |
| getc | getwc | _gettc |
| getchar | getwchar | _gettchar |
| getenv | _wgetenv | _tgetenv |
| gets | getws | _getts |
| isalnum | iswalnum | _istalnum |
| isalpha | iswalpha | _istalpha |
| isascii | iswascii | _istascii |
| iscntrl | iswcntrl | _istcntrl |
| isdigit | iswdigit | _istdigit |
| isgraph | iswgraph | _istgraph |
| islead (?是返回FALSE) | (?是返回FALSE) | _istlead |
| isleadbyte (?是返回FALSE) | isleadbyte (?是返回FALSE) | _istleadbyte |
| islegal (?是返回TRUE) | (?是返回TRUE) | _istlegal |
| islower | iswlower | _istlower |
| isprint | iswprint | _istprint |
| ispunct | iswpunct | _istpunct |
| isspace | iswspace | _istspace |
| isupper | iswupper | _istupper |
| isxdigit | iswxdigit | _istxdigit |
| main | wmain | _tmain |
| perror | _wperror | _tperror |
| printf | wprintf | _tprintf |
| putc | putwc | _puttc |
| putchar | putwchar | _puttchar |
| puts | _putws | _putts |
| remove | _wremove | _tremove |
| rename | _wrename | _trename |
| scanf | wscanf | _tscanf |
| setlocale | _wsetlocale | _tsetlocale |
| sprintf | swprintf | _stprintf |
| sscanf | swscanf | _stscanf |
| strcat | wcscat | _tcscat |
| strchr | wcschr | _tcschr |
| strcmp | wcscmp | _tcscmp |
| strcoll | wcscoll | _tcscoll |
| strcpy | wcscpy | _tcscpy |
| strcspn | wcscspn | _tcscspn |
| strerror | _wcserror | _tcserror |
| strftime | wcsftime | _tcsftime |
| strlen | wcslen | _tcsclen |
| strlen | wcslen | _tcslen |
| strncat | wcsncat | _tcsncat |
| strncat | wcsncat | _tcsnccat |
| strncmp | wcsncmp | _tcsnccmp |
| strncmp | wcsncmp | _tcsncmp |
| strncpy | wcsncpy | _tcsnccpy |
| strncpy | wcsncpy | _tcsncpy |
| strpbrk | wcspbrk | _tcspbrk |
| strrchr | wcsrchr | _tcsrchr |
| strspn | wcsspn | _tcsspn |
| strstr | wcsstr | _tcsstr |
| strtod | wcstod | _tcstod |
| strtok | wcstok | _tcstok |
| strtol | wcstol | _tcstol |
| strtoul | wcstoul | _tcstoul |
| strxfrm | wcsxfrm | _tcsxfrm |
| system | _wsystem | _tsystem |
| tmpnam | _wtmpnam | _ttmpnam |
| tolower | towlower | _totlower |
| toupper | towupper | _totupper |
| ungetc | ungetwc | _ungettc |
| vfprintf | vfwprintf | _vftprintf |
| vprintf | vwprintf | _vtprintf |
| vsprintf | vswprintf | _vstprintf |
| WinMain | wWinMain | _tWinMain |
Copyright
? 2003-2010 Tex Texin. All rights reserved.
??面更新于 2009-01-29.
返回?面?端