Partager via


SetFileApisToOEM, fonction (fileapi.h)

Oblige les fonctions d’E/S de fichiers du processus à utiliser la page de code du jeu de caractères OEM. Cette fonction est utile pour les opérations d’entrée et de sortie de console 8 bits.

Syntaxe

void SetFileApisToOEM();

Valeur de retour

None

Notes

Les fonctions d’E/S de fichier dont la page de codes est définie par SetFileApisToOEM sont les fonctions exportées par KERNEL32.DLL qui acceptent ou retournent un nom de fichier. SetFileApisToOEM définit la page de codes par processus, plutôt que par thread ou par ordinateur.

La fonction SetFileApisToOEM est complétée par la fonction SetFileApisToANSI , qui fait que le même ensemble de fonctions d’E/S de fichier utilise la page de codes du jeu de caractères ANSI.

Les fonctions de console 8 bits utilisent la page de codes OEM par défaut. Toutes les autres fonctions utilisent la page de codes ANSI par défaut. Cela signifie que les chaînes retournées par les fonctions de console peuvent ne pas être traitées correctement par d’autres fonctions, et vice versa. Par exemple, si la fonction FindFirstFileA retourne une chaîne contenant certains caractères ANSI étendus et que les fonctions de console 8 bits sont définies pour utiliser la page de codes OEM, la fonction WriteConsoleA n’affiche pas correctement la chaîne.

Utilisez la fonction AreFileApisANSI pour déterminer la page de codes que le jeu de fonctions d’E/S de fichier utilise actuellement. Utilisez les fonctions SetConsoleCP et SetConsoleOutputCP pour définir la page de codes pour les fonctions de console 8 bits.

Pour résoudre le problème d’incompatibilité des pages de codes, il est préférable d’utiliser Unicode pour les applications console. Les applications console qui utilisent Unicode sont beaucoup plus polyvalentes que celles qui utilisent des fonctions console 8 bits. À l’exception de cette solution, une application console peut appeler la fonction SetFileApisToOEM pour que le jeu de fonctions d’E/S de fichier utilise des chaînes de jeu de caractères OEM plutôt que des chaînes de jeu de caractères ANSI. Utilisez la fonction SetFileApisToANSI pour définir ces fonctions sur la page de codes ANSI.

Lorsqu’elle traite des lignes de commande, une application console doit obtenir la ligne de commande au format Unicode, puis la convertir en formulaire OEM à l’aide des fonctions caractère-à-OEM appropriées. Notez également que le tableau dans le paramètre argv de la fonction de main de ligne de commande contient des chaînes de jeu de caractères ANSI dans ce cas.

Dans Windows 8 et Windows Server 2012, cette fonction est prise en charge par les technologies suivantes.

Technologie Prise en charge
Protocole Server Message Block (SMB) 3.0 Oui
Basculement transparent SMB 3.0 (TFO) Oui
SMB 3.0 avec partages de fichiers avec montée en puissance parallèle (SO) Oui
Système de fichiers du volume partagé de cluster (CsvFS) Oui
Système de fichiers résilient (ReFS) Oui

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête fileapi.h (inclure Windows.h, WinBase.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

AreFileApisANSI

Fonctions de gestion des fichiers

FindFirstFileA

SetConsoleCP

SetConsoleOutputCP

SetFileApisToANSI

WriteConsoleA