Иллюстрированный самоучитель по Visual Studio.Net


Приложение на основе диалога - часть 2


//

// The system cannot find the file specified.

//

#define ERROR FILE NOT FOUND 2L

В файле есть несколько макроопределений, которые позволяют выделять некоторые параметры сообщения, но они не дают возможности программным способом выделить поле MessageText, так необходимое нам с вами. В файле приведены описания двух форматов кодов ошибок. Один из них определяет \¥ш32-ошибки, а другой — СОМ-ошибки. Оба имеют сходную структуру, но различаются в трактовке старших разрядов. Общее для них поле (Code) содержит относительный код или позицию ошибки в группе ошибок, связанных с той или иной ветвью в дереве Windows-технологий. Группы заданы кодом Facility. Например, группа, определяемая кодом Facility=3, объединяет ошибки работы с памятью, а группа Facility=17 объединяет все коды ошибок, которые могут возникнуть при использовании технологии СОМ+. Мощность множества вариаций атрибута Facility в версии Studio.Net 7.0 больше (23), чем в Visual Studio 6 (16), так как возросло количество поддерживаемых Windows технологий.

Таблица. 4.1 Формат кода Win32-ошибок

Таблица. 4.2 Формат HRESULT СОМ-ошибок

Символы имеют следующий смысл:

  • с — Customer code flag (флаг пользователя);

  • R — Reserved (зарезервировано для будущего использования);

  • s — Severity (Успех или неудача);

  • Rl, Cl, N, г — зарезервированная часть кода Facility.

Два старших бита Win32-oum6oK кодируют такие категории степени ошибки:

  • 00 —Success (Успех);

  • 01 — Informational (Информационное сообщение);

  • 10 — Warning (Предупреждение);

  • 11 — Error (Отказ).

Зададимся целью разработать приложение, которое можно назвать анализатором кодов ошибок. С его помощью пользователь, зная код ошибки, сможет быстро получить всю информацию, которая хранится в файле WinError.h и связана именно с этой ошибкой. На примере разработки приложения мы продемонстрируем такие технологические приемы, как:

  • создание приложения на основе диалога;

  • работа с текстовыми строками и потоками ввода-вывода, определенными в STL (Standard Template Library);



    Начало  Назад  Вперед



    Книжный магазин