КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
События. Пример функции ReportError для вывода сообщений об ошибках при выполнении системных вызовов
Обработка сообщений Пример функции ReportError для вывода сообщений об ошибках при выполнении системных вызовов
/* Универсальная функция для вывода сообщений о системных ошибках. */
#include "EvryThng.h"
/* Освободить блок памяти, содержащий сообщение об ошибке. */ HeapFree (GetProcessHeap (), 0, lpvSysMsg);
Если отслеживать исключения, которые возникают на том или ином участке программы, надо создать блоки try и except:
Блоки try являются частью обычного кода приложения. Если на данном участке кода возникает исключение, ОС передает управление обработчику исключений, который представляет собой блок программного кода, следующий за ключевым словом except. Характер последующих действий определяется значением параметра выражение_фильтра. Исключение может возникнуть также в пределах блока, находящегося внутри try-блока; в этом случае средства поддержки времени исполнения "разворачивают" стек, чтобы отыскать в нем информацию об обработчике исключений, после чего передают управление этому обработчику. То же самое происходит и в тех случаях, когда исключения возникают внутри функций, вызванных в пределах try-блока.
Последним из типов объектов синхронизации ядра являются события (events). Объекты события используются чтобы сигнализировать другим потокам о наступлении какого-либо события, например, о появлении нового сообщения. Переход в сигнальное состояние единственного объекта события выведет из состояния ожидания одновременно до несколько потоков. Объекты события делятся на сбрасываемые вручную и автоматические, это их свойство устанавливается при вызове CreateEvent.
Сбрасываемые вручную события (manual-reset events) могут сигнализировать одновременно всем потокам, ожидающим наступления этого события, и переводятся в несигнальное состояние программно. Автоматически сбрасываемые события (auto-reset event) сбрасываются самостоятельно после освобождения одного из ожидающих потоков, тогда как другие ожидающие потоки продолжают ожидать перехода события в сигнальное состояние.
События используют пять новых функций: CreateEvent, OpenEvent, SetEvent, ResetEvent и CreateEvent. Для управления объектами событий используются следующие три функции:
Использование функции ShellExecute
Кроме основной функции ShellExecute, существует ее расширенный вариант, именуемый ShellExecuteEx. Отличается она, дополнительной поддержкой свойств объектов СОМ. В большинстве случаев достаточно возможностей базовой функции.
Дата добавления: 2014-10-15; Просмотров: 626; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |