|
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!
|