Библиотеки dll
DLL (Dynamic-Link Library, динамически связываемая библиотека) – это файл, содержащий набор готовых к исполнению процедур, а также, возможно, ресурсы. Функции DLL могут вызываться исполняемыми модулями (.EXE) или функциями других DLL, причем одновременно к функциям DLL может обращаться неограниченное количество других модулей.
Термин "динамическое связывание" означает, что функции библиотеки не включаются в код использующей ее программы, а вызываются из отдельно существующей библиотеки в процессе работы программы.
Механизм DLL является основой Windows: все функции API собраны в DLL-библиотеках, и исключительно благодаря поддержке механизма DLL программы способны общаться с операционной системой вообще. Написание собственной DLL и размещение ее в общедоступном каталоге можно с полным основанием считать расширением функций ОС.
Подключение DLL может осуществляться как автоматически на этапе загрузки программы (load-time linking, статическая загрузка), так и "вручную" во время работы программы посредством ряда функций API (runtime linking, динамическая загрузка). Код библиотеки загружается в память один раз, сколько бы процессов ею ни пользовались, и выгружается, когда все использующие процессы завершаются. Принудительное аварийное завершение процесса, загрузившего DLL, часто приводит к тому, что код DLL не выгружается и бесполезно занимает память.
DLL могут быть написаны на разных языках с использованием различных моделей вызова. В документации к DLL обязательно должен быть отражен момент, связанный с моделью вызова функций (правилами передачи параметров). Наиболее часто используемые модели вызова, поддерживаемые большинством компиляторов – это модели, обозначаемые в Delphi как StdCall (модель вызова функций WinAPI), CDecl (модель языка С) и Pascal (модель языка Паскаль).
- Подключение файлов ресурсов к программе
- Ресурсы пользователя
- Inactive - пункт неактивен (не генерирует wm_command), но отображается обычным образом, несовместимо с grayed.
- Основные сообщения меню
- Использование таблицы акселераторов
- Окна диалога
- Библиотеки dll
- Синтаксис исходного текста dll
- Поиск используемых dll
- Подключение dll на этапе загрузки
- Подключение dll на этапе выполнения
- Использование ресурсов из dll
- Задание
- Варианты заданий: