Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Sok C futtatókörnyezeti (CRT) függvény nem érhető el univerzális Windows-platform (UWP) alkalmazások létrehozásakor. Néha áthidaló megoldások érhetők el – például Windows Futtatókörnyezetet vagy Win32 API-kat használhat. Más esetekben a CRT-függvények ki lettek tiltva, mert a megfelelő funkciók vagy a támogató API-k nem alkalmazhatók az UWP-alkalmazásokra. A Windows futtatókörnyezetben támogatott alternatív módszer kereséséhez tekintse meg a Windows API-k alternatíváit az UWP-alkalmazásokban.
Az alábbi táblázat felsorolja azokat a CRT-függvényeket, amelyek UWP-alkalmazások létrehozásakor nem érhetők el. Az esetleges kerülő megoldásokat jelzi.
Nem támogatott CRT-függvények
| Funkció | Leírás | Megoldás |
|---|---|---|
_beep
_sleep
_seterrormode
|
Ezek a függvények elavultak voltak a CRT korábbi verzióiban. Emellett a megfelelő Win32 API-k nem érhetők el UWP-alkalmazásokhoz. | Nincs áthidaló megoldás. |
chdir
_chdrive
getcwd
|
Ezek a függvények elavultak, vagy nem szálbiztosak. | Használjon _chdirés _getcwd kapcsolódó függvényeket. |
_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
|
Ezek a konzol I/O-függvényei nem érhetők el a GUI-alapú UWP-alkalmazásokban. | Az UWP-konzolalkalmazások használhatják ezeket a függvényeket. További információ: Univerzális Windows-platform konzolalkalmazás létrehozása. |
getpid
_getpid
|
Ezek a függvények elavultak. | Használja a Win32 API-t GetCurrentProcessId. |
_getdiskfree |
Nem érhető el. | Használja a Win32 API-t GetDiskFreeSpaceExW. |
_getdrive
_getdrives
|
A megfelelő API nem érhető el UWP-alkalmazásokhoz. | Nincs áthidaló megoldás. |
_inp
_inpd
_inpw
_outp
_outpd
_outpw
inp
inpd
inpw
outp
outpd
outpw
|
Az UWP-alkalmazások nem támogatják a port IO-t. | Nincs áthidaló megoldás. |
_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
|
A több bájtos sztringek nem támogatottak az UWP-alkalmazásokban. | Használjon Unicode-sztringeket. |
_pclose
_pipe
_popen
_wpopen
|
A csőfunkciók nem érhetők el az UWP-alkalmazások számára. | Nincs áthidaló megoldás. |
_resetstkoflw |
Az UWP-alkalmazások nem támogatják a Win32 API-kat. | Nincs áthidaló megoldás. |
_getsystime
_setsystime
|
Ezek elavult API-k voltak a korábbi CRT-verziókban. Emellett a felhasználó nem tudja beállítani a rendszeridőt egy UWP-alkalmazásban az engedélyek hiánya miatt. | Ha csak a rendszeridőt szeretné megkapni, használja a Win32 API-t GetSystemTime. A rendszeridő nem állítható be. |
_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 |
A környezeti változók nem érhetők el az UWP-alkalmazások számára. | Nincs áthidaló megoldás. Az időzóna beállításához használja _tzset. |
_loaddll
_getdllprocaddr
_unloaddll
|
Ezek elavult függvények voltak a korábbi CRT-verziókban. Emellett a felhasználók nem tölthetnek be DLL-eket, kivéve azokat, amelyek ugyanabban az alkalmazáscsomagban vannak. | Használja a Win32 API-kat LoadPackagedLibrary, GetProcAddressés FreeLibrary töltse be és használja a csomagolt DLL-eket. |
_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
|
A funkció nem érhető el az UWP-alkalmazásokban. Az UWP-alkalmazások nem hívhatnak meg másik UWP-alkalmazást vagy asztali alkalmazást. | Nincs áthidaló megoldás. |
_heapwalk
_heapadd
_heapchk
_heapset
_heapused
|
Ezeket a függvényeket általában a halommedenyő kezelésére használják. A megfelelő Win32 API-k azonban nem támogatottak az UWP-alkalmazásokban. Az alkalmazások pedig már nem hozhatnak létre vagy használhatnak privát halomokat. | Nincs áthidaló megoldás. A DEBUG CRT-ben _heapwalk azonban csak hibakeresési célokra érhető el. Ezek a függvények nem használhatók a Microsoft Store-ba feltöltött alkalmazásokban. |
A következő függvények érhetők el a CRT-ben UWP-alkalmazásokhoz. Azonban csak akkor használja őket, ha nem tudja használni a megfelelő Win32- vagy Windows-futtatókörnyezeti API-kat, például nagy kódbázisok portolásakor:
| Functions | Megoldás |
|---|---|
Egy bájtos karakterlánc függvények – például strcat, strcpy, strlwr, stb. |
Az UWP-alkalmazásokat szigorúan Unicode-ra állítsa, mert a közzétett Win32 API-k és Windows Runtime API-k csak Unicode-karakterkészleteket használnak. Az egy bájtos függvények nagy kódbázisok portolására szolgáltak, de ezt máskülönben el kell kerülni. Ha lehetséges, a megfelelő széles karakterekkel kapcsolatos függvényeket kell használni. |
Streamelje az IO-t és az alacsony szintű fájl IO-függvényeket – például fopen, openstb. |
Ezek a függvények szinkronok, ami nem ajánlott UWP-alkalmazásokhoz. Az UWP-alkalmazásokban aszinkron API-kat használva nyissa meg a fájlokat, olvasson belőlük és írjon beléjük, hogy elkerülje a felhasználói felületi szál zárolását. Ilyen API-k például az osztályban lévők Windows::Storage::FileIO . |
Windows 8.x Áruházbeli alkalmazások és Windows Phone 8.x-alkalmazások
A korábban említett API-k és a következő API-k nem érhetők el a Windows 8.x Áruházbeli és a Windows Phone 8.x-alkalmazásokban.
| Functions | Leírás | Megoldás |
|---|---|---|
_beginthread
_beginthreadex
_endthread
_endthreadex
|
A Windows 8.x Áruház alkalmazásokban a szálkezelő Win32 API-k nem érhetők el. | Használja a Windows Runtime Windows::System::Threading::ThreadPool vagy a concurrency::task helyette. |
_chdir
_wchdir
_getcwd
_getdcwd
_wgetcwd
_wgetdcwd
|
A munkakönyvtár fogalma nem vonatkozik a Windows 8.x Áruházbeli alkalmazásokra. | Ehelyett használjon teljes elérési utakat. |
_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 |
A többszörös bájtos karakterláncok nem támogatottak a Windows 8.x áruház alkalmazásoknál. | Használjon Unicode-sztringeket. |
_tzset |
A környezeti változók nem érhetők el a Windows 8.x Áruházbeli alkalmazások számára. | Nincs áthidaló megoldás. |
_get_heap_handle, _heapmin |
A Windows 8.x Áruházbeli alkalmazások nem támogatják a megfelelő Win32 API-kat. Az alkalmazások pedig már nem hozhatnak létre privát halomokat. | Nincs áthidaló megoldás. A DEBUG CRT-ben _get_heap_handle azonban csak hibakeresési célokra érhető el. |