Função SetFileApisToOEM (fileapi.h)
Faz com que as funções de E/S do arquivo para o processo usem a página de código do conjunto de caracteres OEM. Essa função é útil para operações de entrada e saída do console de 8 bits.
Sintaxe
void SetFileApisToOEM();
Valor retornado
Nenhum
Comentários
As funções de E/S do arquivo cuja página de código é definida por SetFileApisToOEM são as funções exportadas por KERNEL32.DLL que aceitam ou retornam um nome de arquivo. SetFileApisToOEM define a página de código por processo, em vez de por thread ou por computador.
A função SetFileApisToOEM é complementada pela função SetFileApisToANSI , que faz com que o mesmo conjunto de funções de E/S de arquivo use a página de código do conjunto de caracteres ANSI.
As funções de console de 8 bits usam a página de código OEM por padrão. Todas as outras funções usam a página de código ANSI por padrão. Isso significa que as cadeias de caracteres retornadas pelas funções de console podem não ser processadas corretamente por outras funções e vice-versa. Por exemplo, se a função FindFirstFileA retornar uma cadeia de caracteres que contém determinados caracteres ANSI estendidos e as funções de console de 8 bits estiverem definidas para usar a página de código OEM, a função WriteConsoleA não exibirá a cadeia de caracteres corretamente.
Use a função AreFileApisANSI para determinar qual página de código o conjunto de funções de E/S do arquivo está usando no momento. Use as funções SetConsoleCP e SetConsoleOutputCP para definir a página de código para as funções de console de 8 bits.
Para resolver o problema de incompatibilidade de página de código, é melhor usar Unicode para aplicativos de console. Os aplicativos de console que usam Unicode são muito mais versáteis do que aqueles que usam funções de console de 8 bits. Excluindo essa solução, um aplicativo de console pode chamar a função SetFileApisToOEM para fazer com que o conjunto de funções de E/S do arquivo use cadeias de caracteres de conjunto de caracteres OEM em vez de cadeias de caracteres ANSI. Use a função SetFileApisToANSI para definir essas funções de volta para a página de código ANSI.
Ao lidar com linhas de comando, um aplicativo de console deve obter a linha de comando no formato Unicode e convertê-la no formulário OEM usando as funções relevantes de caractere para OEM. Observe também que a matriz no parâmetro argv da função de main de linha de comando contém cadeias de caracteres ANSI nesse caso.
No Windows 8 e Windows Server 2012, essa função é compatível com as tecnologias a seguir.
Tecnologia | Com suporte |
---|---|
Protocolo SMB (SMB) 3.0 | Sim |
TFO (Failover transparente) do SMB 3.0 | Sim |
SMB 3.0 com compartilhamentos de arquivos de expansão (SO) | Sim |
Sistema de arquivos de Volume Compartilhado Clusterizado (CsvFS) | Sim |
ReFS (Sistema de Arquivos Resiliente) | Sim |
Requisitos
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | fileapi.h (inclua Windows.h, WinBase.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |