Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
De nombreuses fonctions CRT (C Runtime) ne sont pas disponibles lorsque vous créez des applications de plateforme Windows universelle (UWP). Parfois, les solutions de contournement sont disponibles, par exemple, vous pouvez utiliser des API Windows Runtime ou Win32. Dans d’autres cas, les fonctions CRT ont été interdites, car les fonctionnalités correspondantes ou les API de prise en charge ne sont pas applicables aux applications UWP. Pour rechercher une autre méthode prise en charge pour Windows Runtime, consultez Alternatives aux API Windows dans les applications UWP.
Le tableau suivant répertorie les fonctions CRT qui ne sont pas disponibles lorsque vous générez des applications UWP. Elle indique les solutions de contournement qui s’appliquent.
Fonctions CRT non prises en charge
| Fonction | Descriptif | Contournement |
|---|---|---|
_beep
_sleep
_seterrormode
|
Ces fonctions étaient obsolètes dans les versions précédentes du CRT. En outre, les API Win32 correspondantes ne sont pas disponibles pour les applications UWP. | Aucune solution de contournement. |
chdir
_chdrive
getcwd
|
Ces fonctions sont obsolètes ou ne sont pas thread-safe. | Utilisez _chdir, _getcwd et les fonctions associées. |
_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
|
Ces fonctions d’E/S de console ne sont pas disponibles dans les applications UWP basées sur l’interface graphique utilisateur. | Les applications console UWP peuvent utiliser ces fonctions. Pour plus d’informations, consultez Créer une application console de plateforme Windows universelle. |
getpid
_getpid
|
Ces fonctions sont obsolètes. | Utilisez l’API GetCurrentProcessIdWin32 . |
_getdiskfree |
Non disponible. | Utilisez l’API GetDiskFreeSpaceExWWin32 . |
_getdrive
_getdrives
|
L’API correspondante n’est pas disponible pour les applications UWP. | Aucune solution de contournement. |
_inp
_inpd
_inpw
_outp
_outpd
_outpw
inp
inpd
inpw
outp
outpd
outpw
|
Les E/S de port ne sont pas prises en charge dans les applications UWP. | Aucune solution de contournement. |
_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
|
Les chaînes multioctets ne sont pas prises en charge dans les applications UWP. | Utilisez plutôt des chaînes Unicode. |
_pclose
_pipe
_popen
_wpopen
|
Les fonctionnalités de canal ne sont pas disponibles pour les applications UWP. | Aucune solution de contournement. |
_resetstkoflw |
La prise en charge des API Win32 n’est pas disponible pour les applications UWP. | Aucune solution de contournement. |
_getsystime
_setsystime
|
Ces API étaient obsolètes dans les versions précédentes de CRT. En outre, un utilisateur ne peut pas définir l’heure système dans une application UWP en raison d’un manque d’autorisations. | Pour obtenir l’heure système uniquement, utilisez l’API GetSystemTimeWin32 . L’heure système ne peut pas être définie. |
_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 |
Les variables d’environnement ne sont pas disponibles pour les applications UWP. | Aucune solution de contournement. Pour définir le fuseau horaire, utilisez _tzset. |
_loaddll
_getdllprocaddr
_unloaddll
|
Ces fonctions étaient obsolètes dans les versions précédentes de CRT. En outre, un utilisateur ne peut pas charger de DLL à l’exception des DLL du même package d’application. | Utilisez des LoadPackagedLibraryAPI Win32, GetProcAddresset FreeLibrary pour charger et utiliser des DLL empaquetées. |
_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
|
La fonctionnalité n’est pas disponible dans les applications UWP. Une application UWP ne peut pas appeler une autre application UWP ou une application de bureau. | Aucune solution de contournement. |
_heapwalk
_heapadd
_heapchk
_heapset
_heapused
|
Ces fonctions sont généralement utilisées pour travailler avec le tas. Toutefois, les API Win32 correspondantes ne sont pas prises en charge dans les applications UWP. Et les applications ne peuvent plus créer ou utiliser des tas privés. | Aucune solution de contournement. Toutefois, pour des fins de débogage uniquement, "_heapwalk" est disponible dans le CRT DEBUG. Ces fonctions ne peuvent pas être utilisées dans les applications chargées dans le Microsoft Store. |
Les fonctions suivantes sont disponibles dans le CRT pour les applications UWP. Toutefois, utilisez-les uniquement lorsque vous ne pouvez pas utiliser les API Win32 ou Windows Runtime correspondantes, par exemple lorsque vous transférez des bases de code volumineuses :
| Fonctions | Contournement |
|---|---|
Fonctions de chaîne à octet unique ( par exemple, strcat, strcpy, strlwret ainsi de suite). |
Rendez vos applications UWP strictement Unicode, car toutes les API Win32 et les API Windows Runtime exposées utilisent uniquement des jeux de caractères Unicode. Les fonctions à octet unique sont restées pour le portage de grandes bases de code, mais doivent être évitées dans les autres cas. Les fonctions de caractères larges correspondantes devraient être utilisées lorsque c'est possible. |
Les fonctions d'E/S de flux et d'E/S de fichiers de bas niveau, comme fopen, open, et ainsi de suite. |
Ces fonctions sont synchrones, ce qui n’est pas recommandé pour les applications UWP. Dans vos applications UWP, utilisez des API asynchrones pour ouvrir, lire et écrire dans des fichiers pour empêcher le verrouillage du thread d’interface utilisateur. Voici quelques exemples d’API de ce type dans la Windows::Storage::FileIO classe. |
Applications Windows 8.x Store et applications Windows Phone 8.x
Les API mentionnées précédemment et les API suivantes ne sont pas disponibles dans les applications du Windows 8.x Store et les applications Windows Phone 8.x.
| Fonctions | Descriptif | Contournement |
|---|---|---|
_beginthread
_beginthreadex
_endthread
_endthreadex
|
Les API de threading Win32 ne sont pas disponibles dans les applications du Store Windows 8.x. | Utilisez le Windows Runtime Windows::System::Threading::ThreadPool ou le concurrency::task à la place. |
_chdir
_wchdir
_getcwd
_getdcwd
_wgetcwd
_wgetdcwd
|
Le concept d’un répertoire de travail ne s’applique pas aux applications du Windows 8.x Store. | Utilisez plutôt des chemins complets. |
_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 |
Les chaînes multioctets ne sont pas prises en charge dans les applications du Windows 8.x Store. | Utilisez plutôt des chaînes Unicode. |
_tzset |
Les variables d’environnement ne sont pas disponibles pour les applications du Windows 8.x Store. | Aucune solution de contournement. |
_get_heap_handle, _heapmin |
Les API Win32 correspondantes ne sont pas prises en charge dans les applications du Windows 8.x Store. Et les applications ne peuvent plus créer de tas privés. | Aucune solution de contournement. Toutefois, pour des fins de débogage uniquement, "_get_heap_handle" est disponible dans le CRT DEBUG. |