Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

События с автоматическим сбросом. Освобождаются с помощью SetEvent( ), переходят в занятое состояние с помощью WaitForMultipleObjects( )



Освобождаются с помощью SetEvent(…), переходят в занятое состояние с помощью WaitForMultipleObjects(…), как только событие освобождается.

WaitForMultipleObjects(…);

.

SetEvent(…); Для событий с автосбросом SetEvent(…) не используется.

26. Динамически подключаемые библиотеки (DLL). Явная и неявная загрузка DLL.

Динамически подключаемые библиотеки (DLL) используются как хранилища отдельных процедур. Множество процедур, обычно с похожей функциональной направленностью, содержится в DLL как отдельные процедуры, а не как часть одной большой конструкции.

После того, как DLL с помощью процесса, их использующего, будут загружены в память, экспортируемые процедуры можно вызвать из DLL подобно всем другим процедурам.

Четыре самые важные DLL Windows:

· Kernel32.dll – управление памятью, процессами и потоками;

· User32.dll – поддержка пользовательского интерфейса, в том числе функций, связанных с созд. окон и передач. Сообщений;

· GDI32.DLL – графика и вывод текста;

· AdvAPI32.dll – функции для защиты объектов, работы с реестром и регистрацией событий.

Библиотеки dll функционируют в адресном пространстве приложения, загрузившего их, разделяя единую копию кода со всеми другими приложениями, использующую данную dll. Приложения используют неявную(статическую) и явную(динамическую) загрузку dll.

При неявной загрузке dll, в объявлении процедуры из внешней dll включено ключевое слово external и имя dll. В этом случае приложение пытается загрузить dll до того, как будет вызван метод Application.Initialize, то есть до того, как приложение начнет выполняться.

При явной загрузке dll, она будет загружаться в адресное пространство процесса в тот момент, когда будет вызван метод loadlibrary.

Явная загрузка треубет от программиста большей аккуратности, но при этом сокращается время запуска приложения. Неявная загрузка проще, т.к. при этом ОС выполняет большую часть работы.

27. Обработка сообщения в ОС Window. Структура THREADINFO.

Создавая какой-либо поток, система предполагает, что он не будет иметь отноше ния к поддержке пользовательского интерфейса. Это позволяет уменьшшь объем выделяемых ему системных ресурсов. Но, как только поток обратится к той или иной GUI-функции (например, для проверки очереди сообщений или создания окна), система автоматически выделит сму дополнительные ресурсы, необходимые для выпол нения задач, связанных с пользовательским интерфейсом А ссли конкретнее, то сис тема создает структуру THREADINFO и сопоставляет ее с этим потоком.

Элементы этой структуры используются, чтобы обмануть поток — заставить его считать, будто он выполняется в среде, принадлежащей только ему. THREADINFO — это внутренняя (недокументированная) структура, идентифицирующая очередь асин хронных сообщений потока (posted-message queue), очередь синхронных сообщений потока (sent-message queue), очередь ответных сообщений (reply-message queue), оче редь виртуального ввода (virtualized input queue) и флаги пробуждения (wakc flags), она также включает ряд других переменных-членов, характеризующих локальное состояние ввода для данного потока На рис 26-1 показаны структуры THREADINFO, сопоставленные с тремя потоками.

Структура THREADINFO — фундамент всей подсистемы передачи сообщений; чи тая следующие разделы, время от времени посматривайте на эту иллюстрацию.





Дата публикования: 2014-11-03; Прочитано: 336 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...