Разработка приложений в системе Delphi. Шейкер Т.Д. - 158 стр.

UptoLike

Составители: 

Интерфейсный модуль
Доступ к данным dll-библиотеки принято осуществлять с использованием
процедурного интерфейса, то есть с помощью специальных интерфейсных
модулей.
При создании интерфейсного модуля (модуля импорта)
рекомендуется следующая последовательность действий:
открыть файл проекта, в котором надо организовать вызов процедур или
функций из динамической библиотеки;
создать модуль импорта. Для этого выполнить команду File|New и в
открывшемся окне выбрать Unit. В файле проекта в разделе Uses
появится ссылка на созданный модуль;
в секцию
interface модуля импорта внести описания, указывающие
компилятору формат вызова процедур и функций;
сохранить модуль импорта в файле.
Примеры 2 и 3 поясняют работу с библиотекой Beeper, содержащей
единственную процедуру
BeepMe. При вызове этой процедуры компьютер
подаёт звуковой сигнал. В примере 2 используется статический импорт без
интерфейсного модуля.
В примере 3 приведён интерфейсный модуль
SoundUnit, в котором
определены три разных варианта вызова процедуры
BeepMe из Beeper.dll: по
имени, по имени в библиотеке и по номеру. Кроме того, показано, что в
приложении процедуре можно давать другое имя (
BeepMeTwo, BeepMeThree).
Динамический импорт
Для организации динамического импорта надо программно задать
действия, которые при статическом импорте выполняет загрузчик DLL.
Действия выполняются через функции
Windows в следующем порядке:
загрузка DLL в память;
получение адресов точек входа в процедуры и функции DLL;
использование адресов для вызова процедур и функций;
освобождение библиотеки.
158
Интерфейсный модуль
   Доступ к данным dll-библиотеки принято осуществлять с использованием
процедурного интерфейса, то есть с помощью специальных интерфейсных
модулей.   При   создании     интерфейсного   модуля   (модуля    импорта)
рекомендуется следующая последовательность действий:
   • открыть файл проекта, в котором надо организовать вызов процедур или
      функций из динамической библиотеки;
   • создать модуль импорта. Для этого выполнить команду File|New и в
      открывшемся окне выбрать Unit. В файле проекта в разделе Uses
      появится ссылка на созданный модуль;
   • в секцию interface модуля импорта внести описания, указывающие
      компилятору формат вызова процедур и функций;
   • сохранить модуль импорта в файле.
   Примеры 2 и 3 поясняют работу с библиотекой Beeper, содержащей
единственную процедуру BeepMe. При вызове этой процедуры компьютер
подаёт звуковой сигнал. В примере 2 используется статический импорт без
интерфейсного модуля.
   В примере 3 приведён интерфейсный модуль SoundUnit, в котором
определены три разных варианта вызова процедуры BeepMe из Beeper.dll: по
имени, по имени в библиотеке и по номеру. Кроме того, показано, что в
приложении процедуре можно давать другое имя (BeepMeTwo, BeepMeThree).

Динамический импорт
   Для организации динамического импорта надо программно задать
действия, которые при статическом импорте выполняет загрузчик DLL.
Действия выполняются через функции Windows в следующем порядке:
   • загрузка DLL в память;
   • получение адресов точек входа в процедуры и функции DLL;
   • использование адресов для вызова процедур и функций;
   • освобождение библиотеки.


                                    158