RAD Studio
|
This topic describes how to write portable code that correctly uses the floating definitions of RTL functions. The list of floating functions is useful for choosing the correct variant of a function.
RTL functions are available in either ANSI/MBCS or Unicode definitions. For example, the RTL function strlen can be used in ANSI/MBCS mode as follows:
void StorePersonData(const char* name) { PersistToDB(name, strlen(name)); } A more portable way of writing this code is: void StorePersonData(const _TCHAR* name) { PersistToDB(name, _tcstrlen(name)); }
This example assumes that PersistToDB has a Unicode version. Note that for functions that are not going to change or float, you should use either char or wchar_t.
The following table is derived from the tchar.h header file. The char/ANSI column lists the floating functions that are appropriate when _TCHAR is mapped to char, the ANSI version of the function. The wchar_t/UNICODE column lists the functions for wchar_t, the UNICODE version of the function. The _TCHAR/Portable column lists the portable version of the function, which maps to the appropriate function (either the ANSI or UNICODE version) as determined by the current setting of the _TCHAR mapping option.
Floating Function Definitions from tchar.h
char / ANSI |
wchar_t / UNICODE |
_TCHAR / Portable |
_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 |
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 |
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(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|