TURBO PASCAL |
Новости
|
Модули импортаОписания импортируемых процедур и функций могут помещаться непосредственно в программу, которая их импортирует. Однако обыч- но они объединяются в модуль импорта, содержащий описания всех процедур и функций в 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 следует компилировать отдельно. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |