Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 127 KB

ucrt.md

File metadata and controls

83 lines (66 loc) · 127 KB

📘 Explore Microsoft UCRT

Very good videos on old CRT and compiler

Below is the rearchitectured C runtime libs/dlls.

Library Associated DLL Characteristics Option Preprocessor directives
libucrt.lib None Statically links the UCRT into your code. /MT _MT
libucrtd.lib None Debug version of the UCRT for static linking. Not redistributable. /MTd _DEBUG, _MT
ucrt.lib ucrtbase.dll DLL import library for the UCRT. /MD _MT, _DLL
ucrtd.lib ucrtbased.dll DLL import library for the Debug version of the UCRT. Not redistributable. /MDd _DEBUG, _MT, _DLL

What happened it msvcrt.dll or its cousins?

Wikipedia summaries these difference very well

MSVCRT.DLL is the C standard library for the Visual C++ (MSVC) compiler from version 4.2 to 6.0. It provides programs compiled by these versions of MSVC with most of the standard C library functions. These include string manipulation, memory allocation, C-style input/output calls, and others. MSVCP.DLL* is the corresponding C++ library.

It has shipped with Windows versions since Windows 95 OSR2 for use by other Windows components; earlier versions shipped with the CRTDLL.DLL library instead. In older versions of Windows, programs which linked against MSVCRT.DLL were expected to install a compatible copy in the System32 folder, but this contributed to DLL Hell because many installers failed to check the library version against the installed version before replacing it.

Versions of MSVC before 4.0 and from 7.0 to 13.0 used differently named DLLs for each version (MSVCR20.DLL, MSVCR70.DLL, MSVCR71.DLL, MSVCP110.DLL, etc.). Applications are required to install the appropriate version,[15] and Microsoft offers Visual C++ Redistributable packages for this purpose, though Windows typically comes with one version already installed.

With Version 14.0, most of the C/C++ runtime was moved into a new DLL, UCRTBASE.DLL. However, C/C++ programs using UCRTBASE.DLL are forced to link against another new DLL, the VCRuntime, whose name continues to change with each version of MSVC (e.g. VCRUNTIME140.DLL).

Source code for runtime libraries is included in Visual C++[16] for reference and debugging (e.g. in C:\Program Files\Microsoft Visual Studio 11.0\VC\crt\src).

Why do we need vcruntime<>.dll?

When you build a Dynamic-link Library (DLL) by using Visual Studio, by default, the linker includes the Visual C++ run-time library (VCRuntime). The VCRuntime contains code required to initialize and terminate a C/C++ executable. When linked into a DLL, the VCRuntime code provides an internal DLL entry-point function called _DllMainCRTStartup that handles Windows OS messages to the DLL to attach to or detach from a process or thread. The _DllMainCRTStartup function performs essential tasks such as stack buffer security set up, C run-time library (CRT) initialization and termination, and calls to constructors and destructors for static and global objects. _DllMainCRTStartup also calls hook functions for other libraries such as WinRT, MFC, and ATL to perform their own initialization and termination. Without this initialization, the CRT and other libraries, as well as your static variables, would be left in an uninitialized state. The same VCRuntime internal initialization and termination routines are called whether your DLL uses a statically linked CRT or a dynamically linked CRT DLL.

List of UCRT supported header files

Headers API
<assert.h> _wassert,assert,
<complex.h> _Cbuild,_Cmulcc,_Cmulcr,_FCbuild,_FCmulcc,_FCmulcr,_LCbuild,_LCmulcc,_LCmulcr,cabs,cabsf,cabsl,cacos,cacosf,cacosh,cacoshf,cacoshl,cacosl,carg,cargf,cargl,casin,casinf,casinh,casinhf,casinhl,casinl,catan,catanf,catanh,catanhf,catanhl,catanl,ccos,ccosf,ccosh,ccoshf,ccoshl,ccosl,cexp,cexpf,cexpl,cimag,cimagf,cimagl,clog,clog10,clog10f,clogf,clogl,conj,conjf,conjl,cpow,cpowf,cpowl,cproj,cprojf,cprojl,creal,crealf,creall,csin,csinf,csinh,csinhf,csinhl,csinl,csqrt,csqrtf,csqrtl,ctan,ctanf,ctanh,ctanhf,ctanhl,ctanl,norm,normf,norml,
<conio.h> _cgets_s,_cgetws_s,_cprintf,_cprintf_l,_cprintf_p,_cprintf_p_l,_cprintf_s,_cprintf_s_l,_cputs,_cputws,_cscanf,_cscanf_l,_cscanf_s,_cscanf_s_l,_cwprintf,_cwprintf_l,_cwprintf_p,_cwprintf_p_l,_cwprintf_s,_cwprintf_s_l,_cwscanf,_cwscanf_l,_cwscanf_s,_cwscanf_s_l,_getch,_getch_nolock,_getche,_getche_nolock,_getwch,_getwch_nolock,_getwche,_getwche_nolock,_kbhit,_putch,_putch_nolock,_putwch,_putwch_nolock,_ungetch,_ungetch_nolock,_ungetwch,_ungetwch_nolock,_vcprintf,_vcprintf_l,_vcprintf_p,_vcprintf_p_l,_vcprintf_s,_vcprintf_s_l,_vcwprintf,_vcwprintf_l,_vcwprintf_p,_vcwprintf_p_l,_vcwprintf_s,_vcwprintf_s_l,
<corecrt.h> _invalid_parameter,_invalid_parameter_noinfo,_invalid_parameter_noinfo_noreturn,_invoke_watson,
<crtdbg.h> _aligned_free_dbg,_aligned_malloc_dbg,_aligned_msize_dbg,_aligned_offset_malloc_dbg,_aligned_offset_realloc_dbg,_aligned_realloc_dbg,_aligned_recalloc_dbg,_ASSERT,_ASSERT_EXPR,_ASSERTE,_calloc_dbg,_CrtCheckMemory,_CrtDbgReport,_CrtDbgReportW,_CrtDoForAllClientObjects,_CrtDumpMemoryLeaks,_CrtGetAllocHook,_CrtGetDumpClient,_CrtGetReportHook,_CrtIsMemoryBlock,_CrtIsValidHeapPointer,_CrtIsValidPointer,_CrtMemCheckpoint,_CrtMemDifference,_CrtMemDumpAll-ObjectsSince,_CrtMemDumpStatistics,_CrtReportBlockType,_CrtSetAllocHook,_CrtSetBreakAlloc,_CrtSetDbgFlag,_CrtSetDebugFillThreshold,_CrtSetDumpClient,_CrtSetReportFile,_CrtSetReportHook,_CrtSetReportHook2,_CrtSetReportHookW2,_CrtSetReportMode,_dupenv_s_dbg,_expand_dbg,_free_dbg,_fullpath_dbg,_getcwd_dbg,_getdcwd_dbg,_malloc_dbg,_msize_dbg,_realloc_dbg,_recalloc_dbg,_RPT macros,_RPTF macros,_RPTFW macros,_RPTW macros,_STATIC_ASSERT,_strdup_dbg,_tempnam_dbg,_wcsdup_dbg,_wdupenv_s_dbg,_wfullpath_dbg,_wgetcwd_dbg,_wgetdcwd_dbg,_wtempnam_dbg,
<ctype.h> _isalnum_l,_isalpha_l,_isblank_l,_iscntrl_l,_isctype,_isctype_l,_isdigit_l,_isgraph_l,_isleadbyte_l,_islower_l,_isprint_l,_ispunct_l,_isspace_l,_isupper_l,_iswalnum_l,_iswalpha_l,_iswblank_l,_iswcntrl_l,_iswctype_l,_iswdigit_l,_iswgraph_l,_iswprint_l,_iswpunct_l,_iswspace_l,_iswupper_l,_iswxdigit_l,_isxdigit_l,_swlower_l,_tolower,_toupper,isalnum,isalpha,isblank,iscntrl,isdigit,isgraph,isleadbyte,islower,isprint,ispunct,isspace,isupper,iswalnum,iswalpha,iswblank,iswcntrl,iswctype,iswdigit,iswgraph,iswlower,iswprint,iswpunct,iswspace,iswupper,iswxdigit,isxdigit,tolower,toupper,towlower,towupper,
<direct.h> _chdir,_chdrive,_getcwd,_getdcwd,_getdcwd_nolock,_getdiskfree,_getdrive,_getdrives,_mkdir,_rmdir,_wchdir,_wgetcwd,_wgetdcwd,_wgetdcwd_nolock,_wmkdir,_wrmdir,
<eh.h> _get_terminate,_get_unexpected,_set_se_translator,set_terminate,set_unexpected,terminate,unexpected,
<errno.h>
<error.h>
<fcntl.h>
<fenv.h> feclearexcept,fegetenv,fegetexceptflag,fegetround,feholdexcept,feraiseexcept,fesetenv,fesetexceptflag,fesetround,fetestexcept,feupdateenv,
<float.h> _chgsign,_clear87,_clearfp,_control87,_control87_2,_controlfp,_controlfp_s,_copysign,_finite,_fpclass,_fpclassf,_fpreset,_isnan,_logb,_nextafter,_scalb,_scalbf,_set_controlfp,_status87,_statusfp,_statusfp2,
<fpieee.h> _fpieee_flt,
<inttypes.h> _strtoimax_l,_wcstoimax_l,imaxabs,imaxdiv,strtoimax,wcstoimax,
<io.h> _access,_access_s,_chmod,_chsize,_chsize_s,_close,_commit,_creat,_dup,_dup2,_eof,_filelength,_filelengthi64,_findclose,_findfirst,_findfirst32,_findfirst32i64,_findfirst64,_findfirst64i32,_findfirsti64,_findnext,_findnext32,_findnext32i64,_findnext64,_findnext64i32,_findnexti64,_get_osfhandle,_isatty,_locking,_lseek,_lseeki64,_mktemp,_mktemp_s,_open,_open_osfhandle,_pipe,_read,_setmode,_sopen,_sopen_s,_tell,_telli64,_umask,_umask_s,_unlink,_wchmod,_wcreat,_wfindfirst,_wfindfirst32,_wfindfirst32i64,_wfindfirst64,_wfindfirst64i32,_wfindfirsti64,_wfindnext,_wfindnext32,_wfindnext32i64,_wfindnext64,_wfindnext64i32,_wfindnexti64,_wmktemp,_wmktemp_s,_wopen,_write,_wsopen,_wsopen_s,_wunlink,rename,
<limits.h>
<locale.h> _configthreadlocale,_create_locale,_free_locale,_get_current_locale,_wcreate_locale,_wsetlocale,localeconv,setlocale,
<malloc.h> _aligned_free,_aligned_malloc,_aligned_offset_malloc,_aligned_offset_realloc,_aligned_offset_recalloc,_aligned_offset_recalloc_dbg,_aligned_realloc,_aligned_recalloc,_alloca,_expand,_get_heap_handle,_heapchk,_heapmin,_heapwalk,_malloca,_msize,_resetstkoflw,
<math.h> _cabs,_chgsignf,_chgsignl,_copysignf,_copysignl,_finitef,_hypot,_hypotf,_hypotl,_isnanf,_logbf,_matherr,_nextafterf,_set_SSE2_enable,abs,acos,acosf,acosh,acoshf,acoshl,acosl,asin,asinf,asinh,asinhf,asinhl,asinl,atan,atan2,atan2f,atan2l,atanf,atanh,atanhf,atanhl,atanl,cbrt,cbrtf,cbrtl,ceil,ceilf,ceill,copysign,copysignf,copysignl,cos,cosf,cosh,coshf,coshl,cosl,erf,erfc,erfcf,erfcl,erff,erfl,exp,expf,expl,expm1,expm1f,expm1l,fabs,fabsf,fabsl,fdim,fdimf,fdiml,floor,floorf,floorl,fma,fmaf,fmal,fmax,fmaxf,fmaxl,fmod,fmodf,fmodl,fpclassify,frexp,frexpf,frexpl,hypot,hypotf,hypotl,ilogb,ilogbf,ilogbl,isfinite,isinf,isnan,isnormal,labs,ldexp,ldexpf,ldexpl,lgamma,lgammaf,lgammal,llabs,llrint,llrintf,llrintl,llround,llroundf,llroundl,log,log10,log10f,log10l,log1p,log1pf,log1pl,log2,log2f,log2l,logb,logbf,logbl,logf,logl,lrint,lrintf,lrintl,lround,lroundf,lroundl,nan,nanf,nanl,nearbyint,nearbyintf,nearbyintl,nextafter,nextafterf,nextafterl,nexttoward,nexttowardf,nexttowardl,pow,powf,powl,remainder,remainderf,remainderl,remquo,remquof,remquol,rint,rintf,rintl,round,roundf,roundl,scalbln,scalblnf,scalblnl,scalbn,scalbnf,scalbnl,signbit,sin,sinf,sinh,sinhf,sinhl,sinl,sqrt,sqrtf,sqrtl,tan,tanf,tanh,tanhf,tanhl,tanl,tgamma,tgammaf,tgammal,trunc,truncf,truncl,
<mbctype.h> _getmbcp,_ismbbalnum,_ismbbalnum_l,_ismbbalpha,_ismbbalpha_l,_ismbbblank,_ismbbblank_l,_ismbbgraph,_ismbbgraph_l,_ismbbkalnum,_ismbbkalnum_l,_ismbbkana,_ismbbkana_l,_ismbbkprint,_ismbbkprint_l,_ismbbkpunct,_ismbbkpunct_l,_ismbblead,_ismbblead_l,_ismbbprint,_ismbbprint_l,_ismbbpunct,_ismbbpunct_l,_ismbbtrail,_ismbbtrail_l,_ismbslead,_ismbslead_l,_ismbstrail,_ismbstrail_l,_mbccpy,_mbccpy_l,_setmbcp,
<mbstring.h> _ismbcalnum,_ismbcalnum_l,_ismbcalpha,_ismbcalpha_l,_ismbcblank,_ismbcblank_l,_ismbcdigit,_ismbcdigit_l,_ismbcgraph,_ismbcgraph_l,_ismbchira,_ismbchira_l,_ismbckata,_ismbckata_l,_ismbcl0,_ismbcl0_l,_ismbcl1,_ismbcl1_l,_ismbcl2,_ismbcl2_l,_ismbclegal,_ismbclegal_l,_ismbclower,_ismbclower_l,_ismbcprint,_ismbcprint_l,_ismbcpunct,_ismbcpunct_l,_ismbcspace,_ismbcspace_l,_ismbcsymbol,_ismbcsymbol_l,_ismbcupper,_ismbcupper_l,_mbbtombc,_mbbtombc_l,_mbbtype,_mbbtype_l,_mbccpy_s,_mbccpy_s_l,_mbcjistojms,_mbcjistojms_l,_mbcjmstojis,_mbcjmstojis_l,_mbclen,_mbctohira,_mbctohira_l,_mbctokata,_mbctokata_l,_mbctolower,_mbctolower_l,_mbctombb,_mbctombb_l,_mbctoupper,_mbctoupper_l,_mbsbtype,_mbsbtype_l,_mbscat,_mbscat_s,_mbschr,_mbschr_l,_mbscmp,_mbscoll,_mbscoll_l,_mbscpy,_mbscpy_s,_mbscspn,_mbscspn_l,_mbsdec,_mbsdec_l,_mbsdup,_mbsicmp,_mbsicmp_l,_mbsicoll,_mbsicoll_l,_mbsinc,_mbsinc_l,_mbslen,_mbslen_l,_mbslwr,_mbslwr_l,_mbslwr_s,_mbslwr_s_l,_mbsnbcat,_mbsnbcat_l,_mbsnbcat_s,_mbsnbcat_s_l,_mbsnbcmp,_mbsnbcmp_l,_mbsnbcnt,_mbsnbcnt_l,_mbsnbcoll,_mbsnbcoll_l,_mbsnbcpy,_mbsnbcpy_l,_mbsnbcpy_s,_mbsnbcpy_s_l,_mbsnbicmp,_mbsnbicoll,_mbsnbicoll_l,_mbsnbset,_mbsnbset_l,_mbsnbset_s,_mbsnbset_s_l,_mbsncat,_mbsncat_l,_mbsncat_s,_mbsncat_s_l,_mbsnccnt,_mbsnccnt_l,_mbsncmp,_mbsncmp_l,_mbsncoll,_mbsncoll_l,_mbsncpy,_mbsncpy_l,_mbsncpy_s,_mbsncpy_s_l,_mbsnextc,_mbsnextc_l,_mbsnicmp,_mbsnicmp_l,_mbsnicoll,_mbsnicoll_l,_mbsninc,_mbsninc_l,_mbsnlen,_mbsnlen_l,_mbsnset,_mbsnset_l,_mbsnset_s,_mbsnset_s_l,_mbspbrk,_mbspbrk_l,_mbsrchr,_mbsrchr_l,_mbsrev,_mbsrev_l,_mbsset,_mbsset_l,_mbsset_s,_mbsset_s_l,_mbsspn,_mbsspn_l,_mbsspnp,_mbsstr,_mbsstr_l,_mbstok,_mbstok_l,_mbstok_s,_mbstok_s_l,_mbsupr,_mbsupr_l,
<memory.h> _memccpy,_memicmp,_memicmp_l,memchr,memcmp,memcpy,memcpy_s,memset,
<new.h> _query_new_handler,_query_new_mode,_set_new_handler,_set_new_mode,
<process.h> __security_init_cookie,_beginthread,_beginthreadex,_c_exit,_cexit,_cwait,_endthread,_endthreadex,_execl,_execle,_execlp,_execlpe,_execv,_execve,_execvp,_execvpe,_exit,_Exit,_getpid,_spawnl,_spawnle,_spawnlp,_spawnlpe,_wexecl,_wexecle,_wexeclp,_wexeclpe,_wexecv,_wexecve,_wexecvp,_wexecvpe,_wsystem,abort,exit,quick_exit,system,
<rtcapi.h> _RTC_GetErrDesc,_RTC_NumErrors,_RTC_SetErrorFunc,_RTC_SetErrorFuncW,_RTC_SetErrorType,
<search.h> _lfind,_lfind_s,_lsearch,_lsearch_s,
<setjmp.h> longjmp,setjmp,
<share.h>
<signal.h> raise,signal,
<stdarg.h>
<stddef.h> offsetof,
<stdio.h> _fclose_nolock,_fcloseall,_fdopen,_fflush_nolock,_fgetc_nolock,_fgetchar,_fgetwc_nolock,_fgetwchar,_fileno,_flushall,_fprintf_l,_fprintf_p,_fprintf_p_l,_fprintf_s_l,_fputc_nolock,_fputchar,_fputwc_nolock,_fputwchar,_fread_nolock,_fscanf_l,_fscanf_s_l,_fseek_nolock,_fseeki64,_fseeki64_nolock,_fsopen,_ftelli64,_ftelli64_nolock,_fwprintf_l,_fwprintf_p,_fwprintf_p_l,_fwprintf_s_l,_fwrite_nolock,_fwscanf_l,_fwscanf_s_l,_get_printf_count_output,_getchar_nolock,_getmaxstdio,_getw,_getwchar_nolock,_getws_s,_lock_file,_pclose,_popen,_printf_l,_printf_p,_printf_p_l,_printf_s_l,_putc_nolock,_putchar_nolock,_putw,_putwc_nolock,_putwchar_nolock,_putws,_rmtmp,_scanf_l,_scanf_s_l,_scprintf,_scprintf_l,_scprintf_p,_scprintf_p_l,_scwprintf,_scwprintf_l,_scwprintf_p,_scwprintf_p_l,_set_printf_count_output,_setmaxstdio,_snprintf,_snprintf_l,_snprintf_s,_snprintf_s_l,_snscanf,_snscanf_l,_snscanf_s,_snscanf_s_l,_snwprintf,_snwprintf_l,_snwprintf_s,_snwprintf_s_l,_snwscanf,_snwscanf_l,_snwscanf_s,_snwscanf_s_l,_spawnv,_spawnve,_spawnvp,_spawnvpe,_sprintf_l,_sprintf_p,_sprintf_p_l,_sscanf_l,_sscanf_s_l,_swprintf_l,_swprintf_p,_swprintf_p_l,_swscanf_l,_swscanf_s_l,_tempnam,_ungetc_nolock,_ungetwc_nolock,_unlock_file,_vfprintf_l,_vfprintf_p,_vfprintf_p_l,_vfprintf_s_l,_vfwprintf_l,_vfwprintf_p,_vfwprintf_p_l,_vfwprintf_s_l,_vprintf_l,_vprintf_p,_vprintf_p_l,_vprintf_s_l,_vscprintf,_vscprintf_l,_vscprintf_p,_vscprintf_p_l,_vscwprintf,_vscwprintf_l,_vscwprintf_p,_vscwprintf_p_l,_vsnprintf,_vsnprintf_l,_vsnprintf_s,_vsnprintf_s_l,_vsnwprintf,_vsnwprintf_l,_vsnwprintf_s,_vsnwprintf_s_l,_vsprintf_l,_vsprintf_p,_vsprintf_p_l,_vsprintf_s_l,_vswprintf_l,_vswprintf_p,_vswprintf_p_l,_vswprintf_s_l,_vwprintf_l,_vwprintf_p,_vwprintf_p_l,_vwprintf_s_l,_wfdopen,_wfopen,_wfopen_s,_wfreopen,_wfreopen_s,_wfsopen,_wperror,_wpopen,_wprintf_l,_wprintf_p,_wprintf_p_l,_wprintf_s_l,_wremove,_wrename,_wscanf_l,_wscanf_s_l,_wspawnl,_wspawnle,_wspawnlp,_wspawnlpe,_wspawnv,_wspawnve,_wspawnvp,_wspawnvpe,_wtempnam,_wtmpnam,_wtmpnam_s,btowc,clearerr,clearerr_s,fclose,feof,ferror,fflush,fgetc,fgetpos,fgets,fgetwc,fgetws,fopen,fopen_s,fprintf,fprintf_s,fputc,fputs,fputwc,fputws,fread,fread_s,freopen,freopen_s,fscanf,fscanf_s,fseek,fsetpos,ftell,ftell_nolock,fwprintf,fwprintf_s,fwrite,fwscanf,fwscanf_s,getc,getc_nolock,getchar,gets_s,getwc,getwc_nolock,getwchar,perror,printf,printf_s,putc,putchar,puts,putwc,putwchar,remove,rewind,scanf,scanf_s,setbuf,setvbuf,snprintf,sprintf,sscanf,sscanf_s,swprintf,swscanf,swscanf_s,tmpfile,tmpfile_s,tmpnam,tmpnam_s,ungetc,ungetwc,vfprintf,vfprintf_s,vfscanf,vfscanf_s,vfwprintf,vfwprintf_s,vfwscanf,vfwscanf_s,vprintf,vprintf_s,vscanf,vscanf_s,vsnprintf,vsnprintf_s,vsprintf,vsprintf_s,vsscanf,vsscanf_s,vswprintf,vswprintf_s,vswscanf,vswscanf_s,vwprintf,vwprintf_s,vwscanf,wprintf,wprintf_s,wscanf,wscanf_s,
<stdlib.h> __max,__min,_abs64,_atodbl,_atoflt _atodbl_l,_atoflt_l,_atoi_l,_atoi64,_atoi64_l,_atol_l,_atoldbl,_atoldbl_l,_atoll_l,_byteswap_uint64,_byteswap_ulong,_byteswap_ushort,_countof,_dupenv_s,_ecvt,_ecvt_s,_fcvt,_fcvt_s,_freea,_fullpath,_gcvt,_gcvt_s,_get_errno,_get_fmode,_get_pgmptr,_get_wpgmptr,_i64toa,_i64toa_s,_i64tow,_i64tow_s,_itoa,_itoa_s,_itow,_itow_s,_lrotl,_lrotr,_ltoa,_ltoa_s,_ltow,_ltow_s,_makepath,_makepath_s,_mblen_l,_mbstowcs_l,_mbstowcs_s_l,_mbstrlen,_mbstrlen_l,_mbstrnlen,_mbstrnlen_l,_mbtowc_l,_onexit,_putenv,_putenv_s,_recalloc,_rotl,_rotl64,_rotr,_rotr64,_searchenv,_searchenv_s,_set_abort_behavior,_set_doserrno,_set_errno,_set_error_mode,_set_fmode,_splitpath,_splitpath_s,_strtoi64,_strtoi64_l,_strtol_l,_strtold_l,_strtoll_l,_strtoui64,_strtoui64_l,_strtoul_l,_strtoull_l,_strtoumax_l,_ui64toa,_ui64toa_s,_ui64tow,_ui64tow_s,_ultoa,_ultoa_s,_ultow,_ultow_s,_wcstoi64,_wcstoi64_l,_wcstold_l,_wcstoll_l,_wcstombs_l,_wcstoui64,_wcstoui64_l,_wcstoul_l,_wcstoull_l,_wcstoumax_l,_wctomb_s_l,_wdupenv_s,_wfullpath,_wgetenv,_wgetenv_s,_wmakepath,_wmakepath_s,_wputenv,_wputenv_s,_wsearchenv,_wsearchenv_s,_wsplitpath,_wsplitpath_s,_wtoi,_wtoi_l,_wtoi64,_wtoi64_l,_wtol,_wtol_l,_wtoll,_wtoll_l,atexit,atoi,atol,atoll,bsearch,bsearch_s,calloc,div,free,getenv,getenv_s,itoa,ldiv,lldiv,ltoa,malloc,mblen,mbstowcs,mbstowcs_s,mbtowc,qsort,qsort_s,rand,rand_s,realloc,srand,strtol,strtold,strtoll,strtoul,strtoull,strtoumax,ultoa,wcstol,wcstold,wcstoll,wcstombs,wcstombs_s,wcstoul,wcstoull,wcstoumax,wctomb,wctomb_s,
<string.h> __wcserror,__wcserror_s,_mbsupr_s,_mbsupr_s_l,_strcoll_l,_strdup,_strerror,_strerror_s,_stricmp,_stricmp_l,_stricoll,_stricoll_l,_strlwr,_strlwr_l,_strlwr_s,_strlwr_s_l,_strncoll,_strncoll_l,_strncpy_s_l,_strnicmp,_strnicmp_l,_strnicoll,_strnicoll_l,_strnset,_strnset_s,_strrev,_strset,_strset_s,_strtok_s_l,_strupr,_strupr_l,_strupr_s,_strupr_s_l,_strxfrm_l,_wcsdup,_wcserror,_wcserror_s,_wcsicmp,_wcsicmp_l,_wcslwr,_wcslwr_l,_wcslwr_s,_wcslwr_s_l,_wcsncpy_s_l,_wcsnicmp,_wcsnicmp_l,_wcsnset,_wcsnset_s,_wcsrev,_wcsset,_wcsset_s,_wcstok_s_l,_wcsupr,_wcsupr_l,_wcsupr_s,_wcsupr_s_l,_wcsxfrm_l,memmove,memmove_s,strcat,strcat_s,strchr,strcmp,strcoll,strcpy,strcpy_s,strcspn,strerror,strerror_s,strlen,strncat,strncat_s,strncmp,strncpy,strncpy_s,strnlen,strnlen_s,strpbrk,strrchr,strspn,strstr,strtok,strtok_s,strxfrm,wcscat,wcscat_s,wcschr,wcscmp,wcscpy,wcscpy_s,wcscspn,wcslen,wcsncat,wcsncat_s,wcsncmp,wcsncpy,wcsncpy_s,wcsnlen,wcsnlen_s,wcspbrk,wcsrchr,wcsspn,wcsstr,wcstok,wcstok_s,wcsxfrm,
<tchar.h> _strdec,_strinc,_strncnt,_strnextc,_strninc,_strnset_l,_strnset_s_l,_strset_l,_strset_s_l,_strspnp,_wcsdec,_wcsinc,_wcsncnt,_wcsnextc,_wcsninc,_wcsnset_l,_wcsnset_s_l,_wcsset_l,_wcsset_s_l,_wcsspnp,
<time.h> _ctime32,_ctime32_s,_ctime64,_ctime64_s,_difftime32,_difftime64,_get_daylight,_get_dstbias,_get_timezone,_get_tzname,_gmtime32,_gmtime32_s,_gmtime64,_gmtime64_s,_localtime32,_localtime32_s,_localtime64,_localtime64_s,_mktime32,_mktime64,_strdate,_strdate_s,_strftime_l,_strtime,_strtime_s,_time32,_time64,_tzset,_wasctime,_wasctime_s,_wcsftime_l,_wctime,_wctime_s,_wctime32,_wctime32_s,_wctime64,_wctime64_s,_wstrdate,_wstrtime,_wstrtime_s,asctime,asctime_s,clock,ctime,ctime_s,difftime,gmtime,gmtime_s,localtime,localtime_s,mktime,strftime,time,wcsftime,
<uchar.h> mbrtoc16,mbrtoc32,
<utime.h> _wutime,
<varargs.h>
<wchar.h> _waccess,_waccess_s,_wcscoll_l,_wcsicoll,_wcsicoll_l,_wcsncoll,_wcsncoll_l,_wcsnicoll,_wcsnicoll_l,fwide,mbrlen,mbrtowc,mbsrtowcs,mbsrtowcs_s,wcrtomb,wcrtomb_s,wcscoll,wcsrtombs,wcsrtombs_s,wctob,wmemchr,wmemcmp,wmemcpy,wmemcpy_s,wmemmove,wmemmove_s,wmemset,
<wctype.h> towctrans,wctrans,wctype,