Реферат: Разработка DLL в Borland Delphi

{ вызываемпроцедурунавыполнение }

HelloWorld(Self);

{ выгружаем DLL из оперативной памяти }

FreeLibrary(DLLInstance);

end;

Как уже говорилось выше, одним из недостатков статической загрузки DLL является невозможность продолжения работы приложения при отсутствии одной или нескольких библиотек. В случае с динамической загрузкой у вас появляется возможность программно обрабатывать такие ситуации и не допускать, чтобы программа «вываливалась» самостоятельно. По возвращаемому функциями LoadLibrary и GetProcAddress значениям можно определить, успешно ли прошла загрузка библиотеки и найдена ли в ней необходимая приложению процедура. Приведенный ниже код демонстрирует это.

procedureTForm1.DynamicLoadBtnClick(Sender: TObject);

type

THelloWorld = procedure(AForm : TForm);

var

DLLInstance : THandle;

HelloWorld : THelloWorld;

begin

DLLInstance := LoadLibrary(myfirstdll.dll');

if DLLInstance = 0 then begin

MessageDlg(Невозможнозагрузить DLL', mtError, [mbOK], 0);

Exit;

end;

@HelloWorld := GetProcAddress(DLLInstance, HelloWorld');

if @HelloWorld <> nil then

HelloWorld (Self)

else

MessageDlg(Ненайденаискомаяпроцедура!.', mtError, [mbOK], 0);

FreeLibrary(DLLInstance);

end;

В DLL можно хранить не только код, но и формы. Причем создание и помещение форм в динамическую библиотеку не слишком сильно отличается от работы с формами в обычном проекте. Сначала мы рассмотрим, каким образом можно написать библиотеку, содержащую формы, а затем мы поговорим об использовании технологии MDI в DLL.

Разработку DLL, содержащую форму, я продемонстрирую на примере.

Итак, во-первых, создадим новый проект динамической библиотеки. Для этого выберем пункт меню File|New, а затем дважды щелкнем на иконку DLL . После этого вы увидите примерно следующий код:

library Project2;

К-во Просмотров: 945
Бесплатно скачать Реферат: Разработка DLL в Borland Delphi