Реферат: DLL и Дельфи

Думаю, многие знают, что такое DLL (dynamic link library - динамические библиотеки). У библиотек есть немало преимуществ, достаточно веских, что бы их использовать. В этой статье мы научимся создавать и использовать динамические библиотеки в своих проектах.

Зачем они нужны

А зачем эти самые библиотеки мне нужны? - спросите вы. Ну я не знаю, может они вам вообще не нужны. А может и жизненно необходимы. Перечислю возможности и преимущества библиотек:

Универсальность. Любой программист, зная описания и имена функций, находящихся в библиотеке, может использовать их.

Удобность отладки. Вы можете разместить несколько важных функций в библиотеке и обьявить их в программе. При этом вы будете работать с библиотекой, отлаживая эти функций, не трогая основную программу.

Хранилища ресурсов.. В DLL можно хранить ресурсы, такие как рисунки, формы, иконки меню, и т.д.

Взгляд на будущее. С помощью библиотек можно легко создавать плагины, расширяющие стандартные возможности программы. Т.е. можно не выпускать различные версии программы, а выпускать плагины или модифицированные (например с исправленными ошибками) версии библиотек.

Совместное использование. Если библиотека загружена, то её могут использовать и другие приложения.

Экономия ресурсов. Библиотеку можно загрузить и выгрузить тогда, когда это действительно необходимо. Например, программа в нужный момент загрузила DLL, вызвала функцию, сделала работу и выгрузила библиотеку до следующего раза. Налицо экономия памяти

Вобщем DLL - зверь полезный и очень даже дружелюбный.

Структура динамической библиотеки

Что бы создать библиотеку в Delphi6 выберите File -> New -> Other и в появившемся окне выберите DLL Wizard. Дельфи сгенерирует шаблон для библиотеки:

library Project;

{ Important note about DLL memory management: ShareMem must be the

first unit in your library"s USES clause AND your project"s (select

Project-View Source) USES clause if your DLL exports any procedures or

functions that pass strings as parameters or function results. This

applies to all strings passed to and from your DLL--even those that

are nested in records and classes. ShareMem is the interface unit to

the BORLNDMM.DLL shared memory manager, which must be deployed along

with your DLL. To avoid using BORLNDMM.DLL, pass string information

using PChar or ShortString parameters. }

uses

SysUtils,

Classes;

{$R *.res}

begin

end.

В комментарии указывается на необходимость вставить ссылку на модуль ShareMem, если библиотека экспортирует длинные строки в параметрах обращения к подпрограммам или как результат функций. Эта ссылка должна быть первой как в предложении uses библиотеки, так и в uses файла проекта программы, которая использует эту библиотеку. Если подпрограммы библиотеки экспортируют строки ShortString или PChar, ссылаются на ShareMem не обязательно. Что бы не возникало недоразумений в своих библиотеках я рекомендую вместо типа String пользоваться PChar, а по необходимости конвертируйте типы функциями PChar (конветирует из String в PChar) и StrPas (конвертирует из PChar в String).

--> ЧИТАТЬ ПОЛНОСТЬЮ <--

К-во Просмотров: 462
Бесплатно скачать Реферат: DLL и Дельфи