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

UptoLike

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

будет возвращено nil. Если же используется индекс, то при отсутствии
подпрограммы nil не возвращается, поэтому надёжнее пользоваться именем.
В примере 4 реализован динамический импорт функции
Min из библиотеки
MathLib.dll. Для работы с адресом функции объявлен процедурный тип
TMin и
переменная
Min этого типа:
type TMin = function (X, Y: Integer): Integer;
Var Min: TMin;
В дальнейшем переменной Min присваивается значение адреса,
возвращаемого функцией
GetProcAddress. Оперция @ означает получение
адреса:
@Min := GetProcAddress(LibHandle, 'Min');
16.4. Многомодульные библиотеки
Ранее были рассмотрены приёмы создания простейших DLL. Реальные
библиотеки часто являются многомодульными.
В этом случае файл проекта dll-библиотеки должен содержать раздел uses,
подключающий все необходимые модули, раздел
exports и операторный блок
Begin ... end, инициализирующий библиотеку. При этом каждый модуль
может иметь секции
initialization и finalization.
Последовательность создания многомодульной библиотеки:
1) выполнить команду File|New и выбрать DLL для получения заготовки
проекта библиотеки;
2) выполнить команду File|New, выбрать Unit для создания нового модуля;
3) сохранить заготовки под нужными именами;
4) наполнить модуль содержанием: объявить и сформировать процедуры и
функции (в интерфейсной секции выполнить объявления, а в секции
implementationзаписать тексты соответствующих подпрограмм);
5) в файле проекта создать секцию
exports; выбрать определённый
способ распознавания подпрограмм (по имени или по индексу);
6) сохранить модуль и проект;
160
будет возвращено nil. Если же используется индекс, то при отсутствии
подпрограммы nil не возвращается, поэтому надёжнее пользоваться именем.
    В примере 4 реализован динамический импорт функции Min из библиотеки
MathLib.dll. Для работы с адресом функции объявлен процедурный тип TMin и
переменная Min этого типа:
type TMin = function (X, Y: Integer): Integer;
Var Min: TMin;

    В     дальнейшем   переменной   Min    присваивается   значение   адреса,
возвращаемого функцией GetProcAddress. Оперция @ означает получение
адреса:
    @Min := GetProcAddress(LibHandle, 'Min');


                   16.4. Многомодульные библиотеки
    Ранее были рассмотрены приёмы создания простейших DLL. Реальные
библиотеки часто являются многомодульными.
    В этом случае файл проекта dll-библиотеки должен содержать раздел uses,
подключающий все необходимые модули, раздел exports и операторный блок
Begin ... end, инициализирующий библиотеку. При этом каждый модуль
может иметь секции initialization и finalization.
    Последовательность создания многомодульной библиотеки:
    1) выполнить команду File|New и выбрать DLL для получения заготовки
        проекта библиотеки;
    2) выполнить команду File|New, выбрать Unit для создания нового модуля;
    3) сохранить заготовки под нужными именами;
    4) наполнить модуль содержанием: объявить и сформировать процедуры и
        функции (в интерфейсной секции выполнить объявления, а в секции
        implementation – записать тексты соответствующих подпрограмм);
    5) в файле проекта создать секцию exports; выбрать определённый
        способ распознавания подпрограмм (по имени или по индексу);
    6) сохранить модуль и проект;


                                     160