Функция SetFileApisToOEM заставляет функции файлового ввода - вывода использовать кодовую страницу символьного набора OEM. Эта функция полезна для 8-разрядных консольных операций ввода вывода данных.
Синтаксис
VOID SetFileApisToOEM(VOID); |
Параметры
У этой функции параметров нет.
Возвращаемые значения
У этой функции возвращаемых значений нет.
Замечания
Функции файлового ввода - вывода (I/O), кодовая страница которых устанавливаются с помощью SetFileApisToOEM являются функциями, экспортируемые библиотекой KERNEL32. DLL, которая принимает или возвращает имя файла. Функция SetFileApisToOEM устанавливает кодовую страницу на процесс, а не на поток или на компьютер.
Функция SetFileApisToOEM дополняет функцию SetFileApisToANSI, которая заставляет тот же самый набор функций файлового ввода - вывода использовать кодовую страницу символьного набора ANSI.
8-разрядные консольные функции используют кодовую страницу OEM по умолчанию. Все другие функции используют по умолчанию кодовую страницу ANSI. Это означает, что символьные строки, возвращенные консольными функциями не могут быть обработаны правильно другими функциями, и наоборот. Например, если функция FindFirstFileA возвращает строку, которая содержит некоторые дополнительные символы ANSI, а 8-разрядные консольные функции установлены, чтобы использовать кодовую страницу OEM, то функция WriteConsoleA не показывает на экране символьную строку правильным образом.
Используйте функцию AreFileApisANSI, чтобы выяснить, какую кодовую страницу набор функций файлового ввода - вывода использует в текущий момент. Используйте функции SetConsoleCP и SetConsoleOutputCP, чтобы устанавливать кодовую страницу для 8-разрядных консольных функций.
Чтобы решить проблему несовместимости кодовой страницы, для консольных программ лучше использовать Unicode. Консольные программы, которые используют Unicode является намного более универсальными, чем те, которые используют 8-разрядные консольные функции. Запрещая этот метод решения, консольная программа может вызвать функцию SetFileApisToOEM, чтобы заставить набор функций файлового ввода - вывода использовать строки символьного набора OEM, а не строки символьного набора ANSI. Используйте функцию SetFileApisToANSI, чтобы установить в этих функциях обратно кодовую страницу ANSI.
Когда мы имеем дело с командными строками, консольная программа должна получить командную строку в форме Unicode, а затем конвертировать ее к форму OEM, используя соответствующие функции с символами OEM.
Обратите внимание! на то, что в этом случае массив в параметре argv командой строки функции main содержит строки символьного набора ANSI. |
Смотри также
Обзор Управление файлами, Функции, используемые в управлении файлами, AreFileApisANSI, FindFirstFileA, SetConsoleCP, SetConsoleOutputCP, SetFileApisToANSI, WriteConsoleA
Размещение и совместимость SetFileApisToOEM |
||
К |
Windows XP |
Да |
л |
Windows 2000 Professional |
Да |
и |
Windows NT Workstation |
Да |
е |
Windows Me |
Да |
н |
Windows 98 |
Да |
т |
Windows 95 |
Да |
С |
Windows Server 2003 |
Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да |
в | ||
е | ||
р | ||
Используемая библиотека |
Kernel32.lib |
|
Используемая DLL | - | |
Заголовочный файл | ||
- объявлено в |
Winbase.h |
|
- включено в |
Windows.h |
|
Unicode |
Нет |
|
Замечания по платформе |
Не имеется |