Función SetFileApisToOEM (fileapi.h)

Hace que las funciones de E/S de archivo para el proceso usen la página de códigos del juego de caracteres OEM. Esta función es útil para las operaciones de entrada y salida de la consola de 8 bits.

Sintaxis

void SetFileApisToOEM();

Valor devuelto

Ninguno

Observaciones

Las funciones de E/S de archivo cuya página de códigos establece SetFileApisToOEM son esas funciones exportadas por KERNEL32.DLL que aceptan o devuelven un nombre de archivo. SetFileApisToOEM establece la página de códigos por proceso, en lugar de por subproceso o por equipo.

La función SetFileApisToOEM se complementa con la función SetFileApisToANSI , lo que hace que el mismo conjunto de funciones de E/S de archivo use la página de códigos del juego de caracteres ANSI.

Las funciones de consola de 8 bits usan la página de códigos OEM de forma predeterminada. Todas las demás funciones usan la página de códigos ANSI de forma predeterminada. Esto significa que otras funciones pueden no procesar correctamente las cadenas devueltas por las funciones de consola y viceversa. Por ejemplo, si la función FindFirstFileA devuelve una cadena que contiene determinados caracteres ANSI extendidos y las funciones de consola de 8 bits se establecen para usar la página de códigos OEM, la función WriteConsoleA no mostrará correctamente la cadena.

Use la función AreFileApisANSI para determinar qué página de códigos está usando actualmente el conjunto de funciones de E/S de archivos. Use las funciones SetConsoleCP y SetConsoleOutputCP para establecer la página de códigos de las funciones de consola de 8 bits.

Para resolver el problema de la incompatibilidad de la página de códigos, es mejor usar Unicode para aplicaciones de consola. Las aplicaciones de consola que usan Unicode son mucho más versátiles que las que usan funciones de consola de 8 bits. Al prohibir esa solución, una aplicación de consola puede llamar a la función SetFileApisToOEM para hacer que el conjunto de funciones de E/S de archivo use cadenas de juego de caracteres OEM en lugar de cadenas de juego de caracteres ANSI. Use la función SetFileApisToANSI para volver a establecer esas funciones en la página de códigos ANSI.

Cuando se trabaja con líneas de comandos, una aplicación de consola debe obtener la línea de comandos en un formulario Unicode y, a continuación, convertirlo en formulario OEM mediante las funciones de carácter a OEM pertinentes. Tenga en cuenta también que la matriz del parámetro argv de la función principal de la línea de comandos contiene cadenas de juego de caracteres ANSI en este caso.

En Windows 8 y Windows Server 2012, esta función es compatible con las tecnologías siguientes.

Tecnología Compatible
Protocolo Bloque de mensajes del servidor (SMB) 3.0
Conmutación por error transparente (TFO) de SMB 3.0
SMB 3.0 con recursos compartidos de archivos de escalabilidad horizontal (SO)
Sistema de archivos de Volumen compartido de clúster (CsvFS)
Sistema de archivos resistente a errores (ReFS)

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado fileapi.h (incluya Windows.h, WinBase.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

AreFileApisANSI

Funciones de administración de archivos

FindFirstFileA

SetConsoleCP

SetConsoleOutputCP

SetFileApisToANSI

WriteConsoleA