рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Динамически загружаемые библиотеки (DLL)

Динамически загружаемые библиотеки (DLL) - раздел Информатика, Лекция 28 ...

Лекция 28

Динамически загружаемые библиотеки (DLL).

Библиотека DLL - это специальным образом оформленная программная единица, предназначенная для хранения подпрограмм (функций и процедур) и ресурсов… В отличие от модуля, DLL- библиотека подключается к программе динамически, то…

Структура DLL- библиотеки.

Library имя; - заголовок библиотеки;

Uses раздел модулей;

Label. . . . . . . . . ; Раздел меток;

Const . . . . . . . . . ; Раздел констант;

Type. . . . . . . . . . ; Раздел типов;

Var . . . . . . . . . . . ; Раздел переменных;

.......

....... Раздел подпрограмм;

Exports раздел экспортирования подпрограмм;

Begin

. . . . . . . . секция инициализации;

End.

Правила записи разделов DLL- библиотеки такие же, как и в случае программы на ТР.

После раздела модулей могут располагаться разделы описания типов, констант, переменных. Например, если в списке формальных параметров подпрограммы есть массив, то необходимо в библиотеке предусмотреть раздел Type и объявить в нем идентификатор типа массива.

Раздел экспортирования предназначен для указания подпрограмм, которые можно передавать в другие программы. Из DLL- библиотеки можно экспортировать только подпрограммы, имена которых указаны в разделе Exports. Подпрограммы, имена которых не указаны в разделе Exports, можно использовать только внутри DLL-библиотеки.

Секция инициализации аналогична такой же секции модуля и выполняется один раз при загрузке библиотеки. Эта секция начинается с зарезервированного слова Begin и заканчивается словом End., в ней можно записывать операторы, выполняющие инициализацию параметров, открытие файлов и т.п.

РазделExports записывается в виде

Exports объявление 1, объявление 2, . . . . объявление n ;

где объявление Х - задает характеристики конкретной экспортируемой подпрограммы. Есть несколько способов задания объявления.

1 способ. Объявление задается именем подпрограммы, например,

Exports Sum;

2 способ. Объявление задается именем и номером (с помощью директивы Index).

Пример. Exports Sum Index 1, Mult Index 2;

Этот способ является самым быстрым по вызову.

 

5.15.1. Создание DLL- библиотеки.

В Delphy имеются специальные средства для создания DLL библиотек.

Пример. Создадим DLL библиотеку содержащую две процедуры:

MX - определение максимального числа из V1 иV2;

PFY2 - вычисление значения функции У=А*Х*Х.

1. Выполнить команды File New - появится окно NewItem.

Выделим пиктограмму DLL и щелкнем по кнопке ОК.

Откроется окно с заготовкой DLL.

library Project1;

{ Комментарии }

uses SysUtils, Classes;

{$R *.RES}

 

begin

end.

 

2. Удалим комментарии и добавим в заготовку после директивы компилятора {$R *.RES} процедуры max и Pfy, а также укажем в разделе экспортирования объявление подпрограмм спомощью имени и номера. В результате получится текст:

 

Library Project1;

uses Sysutils,classes;

{$R *.RES}

Procedure max(v1,v2:Extended;

Var Z:Extended);

begin

If v1 > v2 Then Z:=v1

Else Z:=v2;

end;

 

Procedure Pfy(a,x:Extended;

Var Fy:Extended);

begin

Fy:=a*Sqr(x);

end;

 

Exports Max index 1,

Pfy index 2;

begin

End.

3. Сохраним проект под именем MyDLL.dll в отдельной папке.

4. Выполнить пункт меню Project Build Project. Выполнить компиляцию, исправить ошибки. При успешной компиляции в нашей папке появится файл MyDLL.dll.

 

5.15.2. Вызов Dll.

Под вызовом библиотеки понимается использование имеющихся в ней подрпограмм (процедур и функций) и ресурсов. При вызове библиотеки программист не имеет возможности указать ее размещение, поэтому библиотека должна быть расположена в папке, в которой Windows может обнаружить ее автоматически. Такими папками являются: корневая папка Windows, ее папки System и System, а также папка из которой запущено приложение.

Различают два способа вызова подпрограмм из библиотеки: - статический и динамический. Заметим, что в данном случае эти термины используются в несколько ином смысле, чем ранее. В обоих способах вызова библиотека загружается в оперативную память во время выполнения приложения, то есть динамически.

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

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

Рассмотрим статическое импортирование.

При статическом импортировании в секции implementation модуля формы задается заголовок импортируемой подпрограммы с директивой External. При вызове подпрограммы DLL библиотеки возможны два варианта:

а) вызов подпрограммы из библиотеки по имени, в этом случае после слова External записывается только имя библиотеки, например

Interface

  б) вызов подпрограммы по ее номеру. Все подпрограммы в библиотеке…  

Диалоговые окна

Все программные сообщения можно разделить на: информационные сообщения (например,"Загрузка данных с дискеты завершена") , предупреждающие сообщения (например,"Файл модифицирован. Сохранить?"), сообщения об ошибке ("Файл данных программы не найден. Требуется переустановка программы"). Эта разбивка на типы сообщений является, естественно, не полной. В Delphi имеются специальные средства для формирования и вывода на экран монитора различных сообщений.

Процедура ShowMessage.

ShowMessage(Sk); где Sk – константа или переменная строкового типа (String). На этой команде…  

ФункцияMessageDlg.

Форма записи: MessageDlg(<сообщение>, <тип>, <кнопки>, <справка>); Здесь: <сообщение>- строковая константа, отображается в окне. <тип>- тип сообщения - может принимать несколько значений. От этих значений зависит содержимое заголовка и…

– Конец работы –

Используемые теги: Динамически, загружаемые, Библиотеки, DLL0.072

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Динамически загружаемые библиотеки (DLL)

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Хранения формы в динамических библиотеках
Глава Динамически компонуемые библиотеки...

Библиотека и краеведение. Работа библиотек с краеведческими документами
Краеведение переживает процесс поиска новых форм, постановки первостепенных задач. Оно приобретает ярко выраженный социально-политический характер, особенно в… Краеведение – это всестороннее изучение определенной части страны, города или деревни, других поселений местным…

Организация библиотек. Стандартные библиотечные модули и модули пользователя. Структура Unit.
Организация библиотек... Стандартные библиотечные модули и модули пользователя... Структура Unit...

Стандартные процедуры размещения и освобождения динамической памяти
Динамическая память... Указатель... Стандартные процедуры размещения и освобождения динамической памяти...

Динамические характеристики микромеханического акселерометра
Динамические характеристики микромеханического акселерометра... Рассмотрим блок схему измерительной цепи акселерометра...

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

Введение. Библиотека лучших практик ITIL и её альтернативы. Модель ITSM как основа ITIL
Библиотека ITIL произносится как айти л англ IT Infrastructure Library библиотека инфраструктуры информационных технологий библиотека... Процессы и организационные подразделения... Большинство компаний имеют иерархическую структуру Они состоят из подразделений объединя ющих группы сотрудников...

ДИНАМИЧЕСКИЕ НАСОСЫ
ДИНАМИЧЕСКИЕ НАСОСЫ... Центробежный...

Динамические испытания изделий МЭМС
На сайте allrefs.net читайте: Динамические испытания изделий МЭМС.

Электронная библиотека научной литературы по гуманитарным
Введение Изучение англосаксонской археологии Рис Вагоны Монтелиуса а английский в... И... ЛЭВИД М ВИЛЬСОН АНГЛОСАКСЫ...

0.034
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам