(Windows) Routine Mappings

2013. 10. 28. 09:10C++

윈도우즈용 어플리케이션을 개발할 때 SBCS, MBCS, UNICODE등을 생각해서 개발을 해야된다. 어떤 상황에서도 컴파일 되고, 문제되지 않는 코드를 작성하려면 Routine Mapping을 참고하여 해당 함수를 사용하여주어야 한다. 예를들어 fgetc(SBCS)와 fgetwc(UNICODE)는 캐릭터를 읽는 사이즈도 다르며, 함수명도 다르다. 내가 만든 어플리케이션이 모두를 지원하고 싶다면 아래표를 참고하여 통칭적인으로 정의한 함수명을 사용하여야 한다.


Generic-Text Routine Mappings. (http://msdn.microsoft.com/en-us/library/aa272889(VS.60).aspx)


Generic-Text 
Routine Name
SBCS (_UNICODE & 
MBCS Not Defined)

_MBCS Defined

_UNICODE Defined
_fgettcfgetcfgetcfgetwc
_fgettcharfgetcharfgetchar_fgetwchar
_fgettsfgetsfgetsfgetws
_fputtcfputcfputcfputwc
_fputtcharfputcharfputchar_fputwchar
_fputtsfputsfputsfputws
_ftprintffprintffprintffwprintf
_ftscanffscanffscanffwscanf
_gettcgetcgetcgetwc
_gettchargetchargetchargetwchar
_gettsgetsgetsgetws
_istalnumisalnum_ismbcalnumiswalnum
_istalphaisalpha_ismbcalphaiswalpha
_istascii__isascii__isasciiiswascii
_istcntrliscntrliscntrliswcntrl
_istdigitisdigit_ismbcdigitiswdigit
_istgraphisgraph_ismbcgraphiswgraph
_istleadAlways returns false_ismbbleadAlways returns false
_istleadbyteAlways returns falseisleadbyteAlways returns false
_istlegalAlways returns true_ismbclegalAlways returns true
_istlowerislower_ismbcloweriswlower
_istprintisprint_ismbcprintiswprint
_istpunctispunct_ismbcpunctiswpunct
_istspaceisspace_ismbcspaceiswspace
_istupperisupper_ismbcupperiswupper
_istxdigitisxdigitisxdigitiswxdigit
_itot_itoa_itoa_itow
_ltot_ltoa_ltoa_ltow
_puttcputcputcputwc
_puttcharputcharputcharputwchar
_puttsputsputsputws
_tmainmainmainwmain
_sntprintf_snprintf_snprintf_snwprintf
_stprintfsprintfsprintfswprintf
_stscanfsscanfsscanfswscanf
_taccess_access_access_waccess
_tasctimeasctimeasctime_wasctime
_tccpyMaps to macro or inline function_mbccpyMaps to macro or inline function
_tchdir_chdir_chdir_wchdir
_tclenMaps to macro or inline function_mbclenMaps to macro or inline function
_tchmod_chmod_chmod_wchmod
_tcreat_creat_creat_wcreat
_tcscatstrcat_mbscatwcscat
_tcschrstrchr_mbschrwcschr
_tcsclenstrlen_mbslenwcslen
_tcscmpstrcmp_mbscmpwcscmp
_tcscollstrcoll_mbscollwcscoll
_tcscpystrcpy_mbscpywcscpy
_tcscspnstrcspn_mbscspnwcscspn
_tcsdec_strdec_mbsdec_wcsdec
_tcsdup_strdup_mbsdup_wcsdup
_tcsftimestrftimestrftimewcsftime
_tcsicmp_stricmp_mbsicmp_wcsicmp
_tcsicoll_stricoll_stricoll_wcsicoll
_tcsinc_strinc_mbsinc_wcsinc
_tcslenstrlenstrlenwcslen
_tcslwr_strlwr_mbslwr_wcslwr
_tcsnbcnt_strncnt_mbsnbcnt_wcnscnt
_tcsncatstrncat_mbsnbcatwcsncat
_tcsnccatstrncat_mbsncatwcsncat
_tcsncmpstrncmp_mbsnbcmpwcsncmp
_tcsnccmpstrncmp_mbsncmpwcsncmp
_tcsnccnt_strncnt_mbsnccnt_wcsncnt
_tcsnccpystrncpy_mbsncpywcsncpy
_tcsncicmp_strnicmp_mbsnicmp_wcsnicmp
_tcsncpystrncpy_mbsnbcpywcsncpy
_tcsncset_strnset_mbsnset_wcsnset
_tcsnextc_strnextc_mbsnextc_wcsnextc
_tcsnicmp_strnicmp_mbsnicmp_wcsnicmp
_tcsnicoll_strnicoll_strnicoll_wcsnicoll
_tcsninc_strninc_mbsninc_wcsninc
_tcsnccnt_strncnt_mbsnccnt_wcsncnt
_tcsnset_strnset_mbsnbset_wcsnset
_tcspbrkstrpbrk_mbspbrkwcspbrk
_tcsspnp_strspnp_mbsspnp_wcsspnp
_tcsrchrstrrchr_mbsrchrwcsrchr
_tcsrev_strrev_mbsrev_wcsrev
_tcsset_strset_mbsset_wcsset
_tcsspnstrspn_mbsspnwcsspn
_tcsstrstrstr_mbsstrwcsstr
_tcstodstrtodstrtodwcstod
_tcstokstrtok_mbstokwcstok
_tcstolstrtolstrtolwcstol
_tcstoulstrtoulstrtoulwcstoul
_tcsupr_strupr_mbsupr_wcsupr
_tcsxfrmstrxfrmstrxfrmwcsxfrm
_tctimectimectime_wctime
_texecl_execl_execl_wexecl
_texecle_execle_execle_wexecle
_texeclp_execlp_execlp_wexeclp
_texeclpe_execlpe_execlpe_wexeclpe
_texecv_execv_execv_wexecv
_texecve_execve_execve_wexecve
_texecvp_execvp_execvp_wexecvp
_texecvpe_execvpe_execvpe_wexecvpe
_tfdopen_fdopen_fdopen_wfdopen
_tfindfirst_findfirst_findfirst_wfindfirst
_tfindnext_findnext_findnext_wfindnext
_tfopenfopenfopen_wfopen
_tfreopenfreopenfreopen_wfreopen
_tfsopen_fsopen_fsopen_wfsopen
_tfullpath_fullpath_fullpath_wfullpath
_tgetcwd_getcwd_getcwd_wgetcwd
_tgetenvgetenvgetenv_wgetenv
_tmainmainmainwmain
_tmakepath_makepath_makepath_wmakepath
_tmkdir_mkdir_mkdir_wmkdir
_tmktemp_mktemp_mktemp_wmktemp
_tperrorperrorperror_wperror
_topen_open_open_wopen
_totlowertolower_mbctolowertowlower
_totuppertoupper_mbctouppertowupper
_tpopen_popen_popen_wpopen
_tprintfprintfprintfwprintf
_tremoveremoveremove_wremove
_trenamerenamerename_wrename
_trmdir_rmdir_rmdir_wrmdir
_tsearchenv_searchenv_searchenv_wsearchenv
_tscanfscanfscanfwscanf
_tsetlocalesetlocalesetlocale_wsetlocale
_tsopen_sopen_sopen_wsopen
_tspawnl_spawnl_spawnl_wspawnl
_tspawnle_spawnle_spawnle_wspawnle
_tspawnlp_spawnlp_spawnlp_wspawnlp
_tspawnlpe_spawnlpe_spawnlpe_wspawnlpe
_tspawnv_spawnv_spawnv_wspawnv
_tspawnve_spawnve_spawnve_wspawnve
_tspawnvp_spawnvp_spawnvp_tspawnvp
_tspawnvpe_spawnvpe_spawnvpe_tspawnvpe
_tsplitpath_splitpath_splitpath_wsplitpath
_tstat_stat_stat_wstat
_tstrdate_strdate_strdate_wstrdate
_tstrtime_strtime_strtime_wstrtime
_tsystemsystemsystem_wsystem
_ttempnam_tempnam_tempnam_wtempnam
_ttmpnamtmpnamtmpnam_wtmpnam
_ttoiatoiatoi_wtoi
_ttolatolatol_wtol
_tutime_utime_utime_wutime
_tWinMainWinMainWinMainwWinMain
_ultot_ultoa_ultoa_ultow
_ungettcungetcungetcungetwc
_vftprintfvfprintfvfprintfvfwprintf
_vsntprintf_vsnprintf_vsnprintf_vsnwprintf
_vstprintfvsprintfvsprintfvswprintf
_vtprintfvprintfvprintfvwprintf