Разработка DLL в Borland Delphi
Категория реферата: Рефераты по информатике, программированию
Теги реферата: сочинение сказка, предмет культурологии
Добавил(а) на сайт: Островерхов.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата
Как уже говорилось выше, одним из недостатков статической загрузки DLL является невозможность продолжения работы приложения при отсутствии одной или нескольких библиотек. В случае с динамической загрузкой у вас появляется возможность программно обрабатывать такие ситуации и не допускать, чтобы программа «вываливалась» самостоятельно. По возвращаемому функциями LoadLibrary и GetProcAddress значениям можно определить, успешно ли прошла загрузка библиотеки и найдена ли в ней необходимая приложению процедура. Приведенный ниже код демонстрирует это.
procedure TForm1.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;
{здесь были комментарии}
Рекомендуем скачать другие рефераты по теме: реферат отрасль, рефераты бесплатно.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 9 10 11 | Следующая страница реферата