На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Console Application Issues



The 8-bit console functions use the OEM code page. All other functions use the ANSI code page by default. This means that strings returned by the console functions may not be processed correctly by the other functions and vice versa. For example, if FindFirstFileA returns a string that contains certain extended ANSI characters, WriteConsoleA will not display the string properly.

The best long-term solution for a console application is to use Unicode. Barring that solution, a console application should use the SetFileApisToOEM function. That function changes relevant Win32 file functions so that they produce OEM character set strings rather than ANSI character set strings.
Following are the Win32 file functions:

_lopen GetDriveType LoadLibrary
CopyFile GetFileAttributes LoadLibraryEx
CreateDirectory GetFullPathName MoveFile
CreateFile GetModuleFileName MoveFileEx
CreateProcess GetModuleHandle OpenFile
DeleteFile GetSystemDirectory RemoveDirectory
FindFirstFile GetTempFileName SearchPath
FindNextFile GetTempPath SetCurrentDirectory
GetCurrentDirectory GetVolumeInformation SetFileAttributes
GetDiskFreeSpace GetWindowsDirectory


When dealing with command lines, a console application should obtain the command line in Unicode form and convert it to OEM form, using the relevant character-to-OEM functions. Note, also, that argv uses the ANSI character set.


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Консольные Прикладные Вопросы



8- Битовая консоль функционирует использованию кодовую страницу OEM. Все другие функции используют кодовую страницу ANSI по умолчанию. Это означает, что строки возвращались консольными функциями не может обрабатываться правильно другими функциями и наоборот. Например, если FindFirstFileA возвращает строку, которая содержит определенные расширенные символы ANSI, WriteConsoleA не отобразит строку правильно.

Наилучшее долгосрочное решение для консольного приложения должно использовать Уникод. Исключая это решение, консольное приложение должно использовать функцию SetFileApisToOEM. Эта функция изменяет важные файловые функции Win32 чтобы они производили набор символов строк OEM а не набор символов строк ANSI.
Следующее является файловыми функциями Win32:

_lopen GetDriveType LoadLibrary CopyFile GetFileAttributes LoadLibraryEx CreateDirectory GetFullPathName MoveFile CreateFile GetModuleFileName MoveFileEx CreateProcess GetModuleHandle OpenFile DeleteFile GetSystemDirectory RemoveDirectory FindFirstFile GetTempFileName SearchPath FindNextFile GetTempPath SetCurrentDirectory GetCurrentDirectory GetVolumeInformation SetFileAttributes GetDiskFreeSpace GetWindowsDirectory


При работе с командными линиями, консольное приложение должно получить командную линию в форме Уникода и преобразовывать это в форму OEM, использовавшую важные символьные-функции OEM. Примечание, также, что argv использует набор символов ANSI.


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz