
- •1.Алфавит языка паскаль
- •9.6.Функции определения порядка
- •10.Тип вещественный
- •12.Операторы
- •12.1.Простые операторы
- •13.2.Вывод данных на монитор
- •13.3.Форматирование при выводе данных
- •17.1.Объявление и вызов подпрограмм
- •19.Блоки (модули) в паскале
- •19.1.Блок Crt (Unit Crt)
- •23.1.Работа с текстовыми файлами
- •24.Динамическая память
- •640 Кбайт ┌───────────────────┐
- •26.Динамические библиотеки
- •28.Тип объект (класс)
- •30.Встроенный ассемблер
- •30.1.Объявление операндов
- •31.Основы работы в графическом режиме
- •34.Многоугольники
- •35.Криволинейные фигуры
- •39.Команды работы редактора
26.Динамические библиотеки
Динамические библиотеки представляют собой исполняемые модули,
предназначенные для использования прикладными программами или дру-
гими библиотеками в среде Windows или защищенном режиме Dos.
Код, содержащийся в такой библиотеке, не компонуется в испол-
няемую программу, а вызывается для исполнения из соответствующей
библиотеки. Могут экспортироваться только процедуры и функции.
а)Использование динамических библиотек
Для использования подпрограмм из динамических библиотек следу-
ет использовать директиву External, которая должна располагаться на
месте обычной секции определения процедур и функций и должна иметь
дальнюю модель вызова.
Существует три способа выборки процедур и функций из библиотек:
->По имени.
->По новому имени (директива Name).
->По индексу (директива Index). Обеспечивает быструю выборку.
Если нет указания на индекс или новое имя, то выборка произво-
дится по имени.
Пример 87.
Procedure ImportByName; External 'TesLib';
Procedure ImportByNewName; External 'TestLib' Name 'RealName';
Procedure ImportByOrdinal; External 'TestLib' Index 5;
Допускается объявление импортируемых подпрограмм непосредст-
венно в головной программе, но лучше создавать модуль импорта, как
WinTypes, WinProcs, WinApi. В случае модификаций потребуется изме-
нить лишь один модуль.
б)Создание динамических библиотек
Структура текста библиотеки аналогична обычному модулю, исклю-
чая несколько различий:
->Заголовок библиотеки должен начинаться со слова Library.
->Заголовок каждой экспортируемой подпрограммы должен включать
директиву Export.
->Библиотека должна включать раздел Exports, в котором перечи-
сляются все экспортируемые подпрограммы с указанием их инде-
кса с помощью директивы Index.
Пример 88.
Library MinMax;
Function Min(X,Y:Integer):Integer; Export;
Begin
If X<Y Then Min:=X Else Min:=Y;
End;
Function Max(X,Y:Integer):Integer; Export;
Begin
If X>Y Then Max:=X Else Max:=Y;
End;
. . .
Exports
Min Index 1;
Max Index 2;
. . .
Begin
[<код инициализации>];
End.
Код инициализации, если он представлен, выполняется один раз
при каждой загрузке библиотеки. Он необходим бывает в среде Windows.
Библиотеки Dll имеют собственный сегмент данных для размещения
собственных глобальных переменных, но не имеют собственного сегмен-
та стека.
Библиотеки Dll могут быть общими для Windows и защищенного ре-
жима Dos.
27.ПРОГРАММИРОВАНИЕ В ЗАЩИЩЕННОМ РЕЖИМЕ DOS
Начиная с процессора 80286 стало возможным реализовать два ре-
жима реализации программ: реальный, когда программы используют па-
мять до 1 Мбайта, и защищенный, когда для работы программы исполь-
зуется память до 16 Мбайт. Отличие заключается в способах преобра-
зования логических адресов в физические. В реальном режиме исполь-
зуются 20-и разрядные адреса, а в защищенном 24-х разрядные. Допол-
нительные четыре разряда (2^4=16) фактически позволяют организовать
таблицу дискрипторов для задания адресов сегментов до 16 Мбайт.
Для работы в защищенном режиме предусмотрен интерфейс защищен-
ного режима (DPMI), который описывает на аппаратно-программном уро-
вне работу с дискрипторной таблицей, реализует прерывания, управле-
ние памятью. Непосредственное обращение к серверу DPMI возможно че-
рез 31 прерывание. Для загрузки и управления памятью предусмотрен
диспетчер исполнения Rtm.Exe.
Исполняемые библиотеки для защищенного режима находятся в биб-
лиотечном файле Tpp.Tpl (Tpw.Tpl для Windows). Другие модули храня-
тся в файлах с расширением *.Tpp и *.Tpw.
Для создания программ для защищенного режиме необходим Borland
Pascal (Bp). Для компиляции программы для работы в защищенном режи-
ме следует установить соответствующий режим компиляции командой
=>Compile\Target...\Protected mode Aplication\Ok
Ранее созданные программы для реального режима будут работать
и в защищенном режиме. Основные проблемы могут возникать при исполь-
зовании динамической памяти.
В Windows-программах для предоставления доступа к средствам за-
щищенного режима предусмотрен модуль WinApi, содержащий большой на-
бор процедур и функций для управления памятью, модулями, ресурсами,
селектором.