Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Muitas funções do runtime C (CRT) não estão acessíveis ao desenvolver aplicativos na Plataforma Universal do Windows (UWP). Às vezes, soluções alternativas estão disponíveis — por exemplo, você pode usar o Windows Runtime ou as APIs do Win32. Em outros casos, as funções CRT foram proibidas porque os recursos correspondentes ou as APIs de suporte não são aplicáveis a aplicativos UWP. Para procurar um método alternativo com suporte para o Windows Runtime, consulte Alternativas às APIs do Windows em aplicativos UWP.
A tabela a seguir lista as funções CRT que não estão disponíveis quando você cria aplicativos UWP. Indica todas as soluções alternativas que se aplicam.
Funções CRT sem suporte
| Função | Descrição | Solução Alternativa |
|---|---|---|
_beep
_sleep
_seterrormode
|
Essas funções eram obsoletas em versões anteriores do CRT. Além disso, as APIs Win32 correspondentes não estão disponíveis para aplicativos UWP. | Sem solução alternativa. |
chdir
_chdrive
getcwd
|
Essas funções são obsoletas ou não são thread-safe. | Use _chdir, _getcwd e funções relacionadas. |
_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
|
Essas funções de E/S de console não estão disponíveis em aplicativos UWP baseados em GUI. | Os aplicativos de console UWP podem usar essas funções. Para obter mais informações, consulte Criar um aplicativo de console da Plataforma Universal do Windows. |
getpid
_getpid
|
Essas funções são obsoletas. | Use a API Win32 GetCurrentProcessId. |
_getdiskfree |
Não disponível. | Use a API Win32 GetDiskFreeSpaceExW. |
_getdrive
_getdrives
|
A API correspondente não está disponível para aplicativos UWP. | Sem solução alternativa. |
_inp
_inpd
_inpw
_outp
_outpd
_outpw
inp
inpd
inpw
outp
outpd
outpw
|
Não há suporte para E/S de porta em aplicativos UWP. | Sem solução alternativa. |
_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
|
Não há suporte para cadeias de caracteres de vários bytes em aplicativos UWP. | Em vez disso, use cadeias de caracteres Unicode. |
_pclose
_pipe
_popen
_wpopen
|
A funcionalidade pipe não está disponível para aplicativos UWP. | Sem solução alternativa. |
_resetstkoflw |
O suporte a APIs Win32 não está disponível para aplicativos UWP. | Sem solução alternativa. |
_getsystime
_setsystime
|
Eram APIs obsoletas em versões anteriores do CRT. Além disso, um usuário não pode definir o tempo do sistema em um aplicativo UWP devido à falta de permissões. | Para obter somente o tempo do sistema, use a API GetSystemTimeWin32. Não é possível definir a hora do sistema. |
_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 |
As variáveis de ambiente não estão disponíveis para aplicativos UWP. | Sem solução alternativa. Para definir o fuso horário, use _tzset. |
_loaddll
_getdllprocaddr
_unloaddll
|
Essas eram funções obsoletas em versões anteriores do CRT. Além disso, um usuário não pode carregar DLLs, exceto as do mesmo pacote de aplicativos. | Use as APIs LoadPackagedLibrary, GetProcAddress e FreeLibrary do Win32 para carregar e usar as DLLs empacotadas. |
_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 funcionalidade não está disponível em aplicativos UWP. Um aplicativo UWP não pode invocar outro aplicativo UWP ou um aplicativo da área de trabalho. | Sem solução alternativa. |
_heapwalk
_heapadd
_heapchk
_heapset
_heapused
|
Essas funções normalmente são usadas para trabalhar com o heap. No entanto, não há suporte para APIs Win32 correspondentes em aplicativos UWP. Além disso, os aplicativos não podem mais criar ou usar heaps privados. | Sem solução alternativa. No entanto, _heapwalk está disponível no DEBUG CRT somente para fins de depuração. Essas funções não podem ser usadas em aplicativos carregados na Microsoft Store. |
As funções a seguir estão disponíveis no CRT para aplicativos UWP. No entanto, use-as somente quando você não puder usar as APIs correspondentes do Win32 ou do Windows Runtime, como quando estiver portando grandes bases de código:
| Functions | Solução Alternativa |
|---|---|
Funções de cadeia de caracteres de byte único, por exemplo, strcat, strcpy, strlwr e assim por diante. |
Torne seus aplicativos UWP estritamente Unicode porque todas as APIs do Win32 e as APIs do Windows Runtime expostas usam apenas conjuntos de caracteres Unicode. As funções de byte único foram deixadas para portar grandes bases de código, mas de outra forma devem ser evitadas. É recomendável usar as funções de caractere largo correspondentes sempre que possível. |
Funções de E/S de fluxo e de E/S de arquivo de baixo nível, por exemplo, fopen, open e assim por diante. |
Essas funções são síncronas, o que não é recomendado para aplicativos UWP. Em seus aplicativos UWP, use APIs assíncronas para abrir, ler e gravar em arquivos para impedir o bloqueio do thread de interface do usuário. Exemplos dessas APIs são os da Windows::Storage::FileIO classe. |
Aplicativos da Windows 8.x Store e aplicativos do Windows Phone 8.x
As APIs mencionadas anteriormente e as seguintes APIs não estão disponíveis em aplicativos da Windows 8.x Store e aplicativos do Windows Phone 8.x.
| Functions | Descrição | Solução Alternativa |
|---|---|---|
_beginthread
_beginthreadex
_endthread
_endthreadex
|
As APIs Win32 de threading não estão disponíveis em aplicativos na loja Windows 8.x. | Use o Windows Runtime Windows::System::Threading::ThreadPool ou concurrency::task em vez disso. |
_chdir
_wchdir
_getcwd
_getdcwd
_wgetcwd
_wgetdcwd
|
O conceito de um diretório de trabalho não se aplica aos aplicativos da Windows 8.x Store. | Em vez disso, use caminhos completos. |
_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 |
Não há suporte para cadeias de caracteres de vários bytes em aplicativos da Windows 8.x Store. | Em vez disso, use cadeias de caracteres Unicode. |
_tzset |
As variáveis de ambiente não estão disponíveis para aplicativos da Windows 8.x Store. | Sem solução alternativa. |
_get_heap_handle, _heapmin |
As APIs Win32 correspondentes não têm suporte em aplicativos da Windows 8.x Store. Além disso, os aplicativos não podem mais criar heaps privados. | Sem solução alternativa. No entanto, _get_heap_handle está disponível no DEBUG CRT somente para fins de depuração. |