Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
55
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Модули импорта

Описания импортируемых процедур и функций могут помещаться

непосредственно в программу, которая их импортирует. Однако обыч-

но они объединяются в модуль импорта, содержащий описания всех

процедур и функций в DLL, а также все типы и константы, необходи-

мые для интерфейса с DLL. Примерами таких модулей импорта являют-

ся поставляемые с Borland Pascal модули WinTypes, WinProcs и

WinAPI. Модули импорта не обязательны для интерфейса с DLL, но

они значительно упрощают обслуживание использующих множество DLL

проектов.

В качестве примера рассмотрим DLL с именем DATETIME.DLL, со-

держащую четыре подпрограммы для получения и установки даты и

времени с помощью типа записи, содержащей число, месяц, год и за-

писи, которая содержит секунду, минуту и час. Вместо спецификации

соответствующих описаний процедуры, функции и типа в каждой ис-

пользующей DLL программе вы можете построить наряду с DLL модуль

импорта. В следующем примере создается файл .TPW (в предположе-

нии, что целевой платформой является Windows), но отсутствуют код

и данные для использующей его программы.

unit DateTime;

interface

type

TTimeRec = record

Second: Integer;

Minute: Integer;

Hour: Integer;

end;

type

TDateRec

TDateRec = record

Day: Integer;

Month: Integer;

Year: Integer;

end;

procedure SetTime(var Time: TTimeRec);

procedure GetTime(var Time: TTimeRec);

procedure SetDate(var Date: TDateRec);

procedure GetDate(var Date: TDateRec);

inplementation

procedure SetTime; external 'DATETIME' index 1;

procedure GetTime; external 'DATETIME' index 2;

procedure SetDate; external 'DATETIME' index 3;

procedure GetTime; external 'DATETIME' index 4;

end.

Любая программа, использующая DATETIME.DLL может теперь

просто задать в своем операторе uses модуль DateTime. Приведем

пример программы Windows:

program ShowTime;

uses WinCrt, DateTime;

var

Time: TTimeRec;

begin

GetTime(Time);

with Time do

WriteLn('Текущее время: ', Hour, ':', Minute, ':',

Second);

end.

Другим преимуществом использования модуля импорта, такого

как DateTime, является то, что при модификации DATETIME.DLL обно-

вить требуется только модуль импорта DateTime.

Когда вы компилируете использующую DLL программу, компилятор

не ищет DLL, так что ее присутствие не требуется. Однако DLL

должна присутствовать в системе при выполнении программы.

Если вы пишете собственные DLL, они не компилируются автома-

тически при компиляции использующей ее программы с помощью коман-

ды Compile¦Make. DLL следует компилировать отдельно.

Соседние файлы в предмете Программирование на Pascal