TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

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

             Описания импортируемых процедур и функций  могут  помещаться
        непосредственно в программу, которая их импортирует. Однако обыч-
        но они объединяются в модуль импорта,  содержащий  описания  всех
        процедур и функций в 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 следует компилировать отдельно.



Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz