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

Při sestavování aplikací Univerzální platforma Windows (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 prostředí 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 nevztahují na aplikace pro UPW. Pokud chcete vyhledat alternativní metodu podporovanou pro prostředí Windows Runtime, přečtěte si téma Alternativy k rozhraním API pro Windows v aplikacích pro UPW.

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

Nepodporované funkce CRT

Function Popis Alternativní řešení
_beep _sleep _seterrormode Tyto funkce byly zastaralé v předchozích verzích CRT. Odpovídající rozhraní API Win32 také nejsou k dispozici pro aplikace pro UPW. Alternativní řešení neexistuje.
chdir _chdrive getcwd Tyto funkce jsou zastaralé nebo nejsou bezpečné pro přístup z více vláken. _getcwd Používejte _chdira související funkce.
_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 vstupně-výstupní funkce konzoly nejsou v aplikacích pro UPW založené na grafickém uživatelském rozhraní k dispozici. Konzolové aplikace UPW můžou tyto funkce používat. Další informace najdete v tématu Vytvoření konzolové aplikace Univerzální platforma Windows.
getpid _getpid Tyto funkce jsou zastaralé. Použijte rozhraní API GetCurrentProcessIdWin32 .
_getdiskfree Není k dispozici. Použijte rozhraní API GetDiskFreeSpaceExWWin32 .
_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 nepodporuje vstupně-výstupní operace portu. 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ícebajtů řetězce nejsou podporovány v aplikacích pro UPW. Místo toho používejte řetězce Unicode.
_pclose _pipe _popen _wpopen Funkce kanálu není dostupná pro aplikace pro UPW. Alternativní řešení neexistuje.
_resetstkoflw Podpora rozhraní API Win32 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 nedostatku oprávnění. Chcete-li získat pouze systémový čas, použijte rozhraní API GetSystemTimeWin32 . Systémový čas nelze nastavit.
_environ_putenv _putenv_s _searchenv _searchenv_s _dupenv_s _wputenv getenv getenv_s putenv _wgetenv_s _wsearchenv_s _wdupenv_s _wgetenv _wenviron _wputenv_s _wsearchenv tzset Proměnné prostředí nejsou dostupné pro aplikace pro UPW. Alternativní řešení neexistuje. K nastavení časového pásma použijte _tzset.
_loaddll _getdllprocaddr _unloaddll Ty byly zastaralé funkce v předchozích verzích CRT. Uživatel také nemůže načíst knihovny DLL s výjimkou knihoven DLL ve stejném balíčku aplikace. Použijte rozhraní API LoadPackagedLibraryGetProcAddressWin32 a FreeLibrary načtěte a používejte zabalené knihovny DLL.
_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 Funkce nejsou k dispozici v aplikacích pro UPW. Aplikace pro UPW nemůže vyvolat jinou aplikaci pro UPW ani desktopovou aplikaci. Alternativní řešení neexistuje.
_heapwalk _heapadd _heapchk _heapset _heapused Tyto funkce se obvykle používají k práci s haldou. Odpovídající rozhraní API Win32 se ale v aplikacích pro UPW nepodporují. A aplikace už nemůžou vytvářet ani používat privátní haldy. Alternativní řešení neexistuje. _heapwalk V CRT ladění je však k dispozici pouze pro účely ladění. Tyto funkce se nedají použít v aplikacích, které se nahrají do Microsoft Storu.

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

Funkce Alternativní řešení
Jednobajtů řetězcové funkce, strcatnapříklad , strcpy, strlwratd. Používejte aplikace pro UPW výhradně unicode, protože všechna rozhraní API Win32 a prostředí Windows Runtime rozhraní API, která jsou vystavená, používají pouze znakové sady Unicode. Funkce s jedním bajtem zůstaly pro přenos velkých základů kódu, ale jinak by se měly vyhnout. Pokud je to možné, měly by se místo toho použít odpovídající široké znakové funkce.
Funkce vstupně-výstupních operací streamování a vstupně-výstupních operací souborů nízké úrovně, fopennapříklad , openatd. 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ů, aby se zabránilo uzamčení vlákna uživatelského rozhraní. Příklady takových rozhraní API jsou ty, které jsou Windows::Storage::FileIO ve třídě.

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

V aplikacích pro Windows 8.x Store a aplikacích Windows Phone 8.x nejsou dostupná dříve uvedená rozhraní API i následující rozhraní API.

Funkce Popis Alternativní řešení
_beginthread _beginthreadex _endthread _endthreadex Rozhraní API Win32 s vlákny nejsou v aplikacích pro Windows 8.x Store k dispozici. Windows Runtime Windows::System::Threading::ThreadPool Použijte nebo concurrency::task místo toho.
_chdir _wchdir _getcwd _getdcwd _wgetcwd _wgetdcwd Koncept pracovního adresáře se nevztahuje na aplikace pro 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 _mbsdup isleadbyte Vícebajtů řetězce nejsou podporovány v aplikacích pro Windows 8.x Store. Místo toho používejte řetězce Unicode.
_tzset Proměnné prostředí nejsou dostupné pro aplikace pro Windows 8.x Store. Alternativní řešení neexistuje.
_get_heap_handle, _heapmin Odpovídající rozhraní API Win32 nejsou podporována v aplikacích pro Windows 8.x Store. A aplikace už nemůžou vytvářet privátní haldy. Alternativní řešení neexistuje. _get_heap_handle V CRT ladění je však k dispozici pouze pro účely ladění.