Nepodporované funkce CRT v aplikacích pro Univerzální platformu Windows

Při vytváření aplikací pro Univerzální platformu Windows Platform (UPW) není k dispozici mnoho funkcí modulu runtime jazyka C (CRT). Někdy jsou k dispozici alternativní řešení – můžete například použít rozhraní API Windows Runtime nebo Win32. V jiných případech byly funkce CRT zakázány, protože odpovídající funkce nebo podpůrná rozhraní API se neužily na aplikace UPW. Alternativní metodu podporovanou pro modul Windows Runtime najdete v tématu Alternativy k Windows API v aplikacích pro UPW.

Následující tabulka uvádí funkce CRT, které nejsou k dispozici při vytváření aplikací pro UPW. Označuje jakákoli alternativní řešení, která se vztahují.

Nepodporované funkce CRT

Funkce Description Alternativní řešení
_beep _sleep _seterrormode Tyto funkce byly v předchozích verzích CRT zastaralé. Odpovídající rozhraní API systému Win32 navíc nejsou k dispozici pro aplikace pro UPW. Alternativní řešení neexistuje.
chdir _chdrive getcwd Tyto funkce jsou zastaralé nebo nejsou bezpečné pro vlákno. Používejte _chdir_getcwd související funkce a .
_cgets _cgets_s _cgetws _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 _cwait _cwprintf _cwprintf_l _cwprintf_p _cwprintf_p_l _cwprintf_s _cwprintf_s_l _cwscanf _cwscanf_l _cwscanf_s _cwscanf_s_l _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 _getch _getch_nolock _getche _getche_nolock _getwch _getwch_nolock _getwche _getwche_nolock _putch _putch_nolock _putwch _putwch_nolock _ungetch _ungetch_nolock _ungetwch _ungetwch_nolock _kbhit kbhit putch cgets cprintf cputs cscanf cwait getch getche ungetch Tyto V/V funkce konzoly nejsou k dispozici v aplikacích pro UPW s grafickým uživatelským rozhraním. Tyto funkce mohou používat konzolové aplikace UPW. Další informace najdete v tématu Vytvoření konzolové aplikace Universal Windows Platform.
getpid _getpid Tyto funkce jsou zastaralé. Použijte rozhraní Win32 GetCurrentProcessId API.
_getdiskfree Není k dispozici. Použijte rozhraní Win32 GetDiskFreeSpaceExW API.
_getdrive _getdrives Odpovídající rozhraní API není k dispozici pro aplikace pro UPW. Alternativní řešení neexistuje.
_inp _inpd _inpw _outp _outpd _outpw inp inpd inpw outp outpd outpw V aplikacích pro UPW se V/V portů nepodporuje. Alternativní řešení neexistuje.
_ismbcalnum _ismbcalnum_l _ismbcalpha _ismbcalpha_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 _mbccpy_l _mbccpy_s _mbccpy_s_l _mbcjistojms _mbcjistojms_l _mbcjmstojis _mbcjmstojis_l _mbclen _mbclen_l _mbctohira _mbctohira_l _mbctokata _mbctokata_l _mbctolower _mbctolower_l _mbctombb _mbctombb_l _mbctoupper _mbctoupper_l _mbsbtype _mbsbtype_l _mbscat _mbscat_l _mbscat_s _mbscat_s_l _mbschr _mbschr_l _mbscmp _mbscmp_l _mbscoll _mbscoll_l _mbscpy _mbscpy_l _mbscpy_s _mbscpy_s_l _mbscspn _mbscspn_l _mbsdec _mbsdec_l _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 _mbsnbicmp_l _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 _mbsspnp_l _mbsstr _mbsstr_l _mbstok _mbstok_l _mbstok_s _mbstok_s_l _mbsupr _mbsupr_l _mbsupr_s _mbsupr_s_l is_wctype Vícebajtové řetězce se v aplikacích pro UPW nepodporují. Místo toho použijte řetězce Unicode.
_pclose _pipe _popen _wpopen Funkce kanálu není dostupná pro aplikace pro UPW. Alternativní řešení neexistuje.
_resetstkoflw Podpora rozhraní WIN32 API není dostupná pro aplikace pro UPW. Alternativní řešení neexistuje.
_getsystime _setsystime Tato rozhraní API byla zastaralá v předchozích verzích CRT. Uživatel také nemůže nastavit systémový čas v aplikaci pro UPW kvůli chybějícím oprávněním. Pokud chcete získat jenom systémový čas, použijte rozhraní Win32 API GetSystemTime . Systémový čas není možné nastavit.
_environ_putenv_putenv_s_searchenv_searchenv_s_dupenv_s_wputenv_wputenv_s_wsearchenv getenv – getenv_s putenv _wdupenv_s_wenviron_wgetenv_wgetenv_s_wsearchenv_stzset Proměnné prostředí nejsou k dispozici pro aplikace pro UPW. Alternativní řešení neexistuje. K nastavení časového pásma použijte _tzset .
_loaddll _getdllprocaddr _unloaddll V předchozích verzích CRT se jedná o zastaralé funkce. Uživatel také nemůže načíst knihovny DLL s výjimkou knihoven ve stejném balíčku aplikace. K načtení a použití zabalených knihoven DLL použijte rozhraní API systému Win32, a LoadPackagedLibraryGetProcAddressFreeLibrary .
_wexecl _wexecle _wexeclp _wexeclpe _wexecv _wexecve _wexecvp _wexecvpe _execl _execle _execlp _execlpe _execv _execve _execvp _execvpe _spawnl _spawnle _spawnlp _spawnlpe _spawnv _spawnve _spawnvp _spawnvpe _wspawnl _wspawnle _wspawnlp _wspawnlpe _wspawnv _wspawnve _wspawnvp _wspawnvpe _wsystem execl execle execlp execlpe execv execve execvp execvpe spawnl spawnle spawnlp spawnlpe spawnv spawnve spawnvp spawnvpe system Tato funkce není dostupná v aplikacích pro UPW. Aplikace pro UPW nemůže vyvolat jinou aplikaci pro UPW ani desktopové aplikace. Alternativní řešení neexistuje.
_heapwalk _heapadd _heapchk _heapset _heapused Tyto funkce se obvykle používají pro práci s haldou. Odpovídající rozhraní API systému Win32 se ale v aplikacích pro UPW nepodporují. A aplikace už nebudou moci vytvářet ani používat privátní heaps. Alternativní řešení neexistuje. Je však _heapwalk k dispozici v seznamu CRT ladění pouze pro účely ladění. Tyto funkce nelze použít v aplikacích nahraných do Microsoft Store.

V CRT pro aplikace pro UPW jsou k dispozici následující funkce. Používejte je však pouze v případě, že nemůžete použít odpovídající rozhraní API win32 nebo Windows Runtime, například při přenosu velkých základů kódu:

Funkce Alternativní řešení
Funkce jedno byte string – například strcat , strcpy , strlwr atd. Udělte aplikacím pro UPW striktně unicode, protože všechna rozhraní API win32 a rozhraní API Windows Runtime, která jsou vystavená, používají pouze znakové sady Unicode. Jedno byteové funkce zůstaly pro přenos velkých základů kódu, ale jinak byste se jim měli vyhnout. Pokud je to možné, měli byste místo toho použít odpovídající široké znakové funkce.
V/V streamování a funkce V/V souborů nízké úrovně – například fopenopen , atd. Tyto funkce jsou synchronní, což se nedoporučuje pro aplikace pro UPW. V aplikacích pro UPW použijte asynchronní rozhraní API k otevření, čtení a zápisu do souborů, abyste zabránili uzamčení vlákna uživatelského rozhraní. Příkladem takových rozhraní API jsou rozhraní ve Windows::Storage::FileIO třídě .

aplikace Windows 8.x Store a Windows Phone 8.x

V aplikacích pro Windows 8.x Store a Windows Phone 8.x nejsou dostupná jak rozhraní API, tak i následující rozhraní API.

Funkce Description Alternativní řešení
_beginthread _beginthreadex _endthread _endthreadex Rozhraní API Win32 pro threading nejsou v aplikacích Windows 8.x Store k dispozici. Místo Windows Runtime Windows::System::Threading::ThreadPool toho použijte concurrency::task nebo .
_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd Koncept pracovního adresáře se nevztahuje na aplikace Windows 8.x Store. Místo toho použijte úplné cesty.
_isleadbyte_l_ismbbalnum, _ismbbalnum_l, _ismbbalpha, _ismbbalpha_ismbbalpha_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_mbsdupisleadbyte Vícebajtové řetězce nejsou podporované v aplikacích Windows 8.x Store. Místo toho použijte řetězce Unicode.
_tzset Proměnné prostředí nejsou k dispozici pro Windows 8.x Store. Alternativní řešení neexistuje.
_get_heap_handle, _heapmin Odpovídající rozhraní API systému Win32 nejsou podporována v Windows 8.x Store. A aplikace už nebudou moci vytvářet privátní heaps. Alternativní řešení neexistuje. Je však _get_heap_handle k dispozici v seznamu CRT ladění pouze pro účely ladění.