Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Unicode-версия программы для ИС MVS-2005 и MVS-2008.
Приведенная выше программа будет (по крайней мере должна, если она с этим согласна) функционировать корректно, если ее компилировать в среде MVS 6.0. В среде MVS-2005 она работать не будет, так как по умолчанию в ИС MVS-2005 установлена кодировка Unicode (см. раздел «Интегрированная среда MVS-2005» в этом документе). Та же программа для ИС MVS-2005 (с установленной по умолчанию кодировкой Unicode) может быть реализована так, как в приведенном ниже листинге. Некоторые комментарии к этой версии программы, использующей кодировку Unicode (установлена в свойствах проекта ИС MVS-2005 по умолчанию). Тип wchar_t трактуется как символы Unicode (2-байтные). Метод CString::GetBuffer() возвращает указатель на строку, хранящуюся в классе CString. Функция WideCharToMultiByte() с множеством параметров предназначена для преобразования символов из кодировки Unicode в кодировку ANSI (кодовая страница 866 – OEM-Russia). Более подробные сведения об обработке строк символов см. в подразделе «Обработка строк» этого руководства. В целом приведенные в этой программе приемы, т.е. использование функций CharToOemA(), WideCharToMultiByte() и, частично, класса CString, должны были проиллюстрировать Вам (надеюсь, что так оно и случилось) сложности и способы работы с символами кириллицы в среде MVS-2005 при разработке консольных приложений. В приложениях с графическим интерфейсом (GUI application), к счастью, с символами кириллицы дело обстоит легче (несомненно, что Вы обратили внимание на передачу текста на русском языке в функцию вывода окна сообщения AfxMessageBox()).
Еще раз хочу подчеркнуть, что в приведенном виде программа будет компилироваться и выполняться, если в свойствах проекта (Project→Properties→General) для параметра Character Set выбрано значение по умолчанию “Use Unicode Character Set”. Ниже приведен код, который позволяет задать имя файла инициализации (для консольного приложения) другим способом, отличным от приведенного выше. В нем использован тот факт, что в функцию _tmain() параметром TCHAR* argv[] передается системой полное имя исполняемого файла. Таким образом, вызов функции SetIniFileName2() в функции _tmain() может выглядеть так: if(!SetIniFileName2(argv[0])) AfxMessageBox("Ошибка при изменении имени ini-файла");
|
|||||||
Последнее изменение этой страницы: 2018-04-12; просмотров: 453. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |