Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Delphi Работа с DLL

Артур-1

•Веб-разработчик•
Пользователь
Регистрация
25 Май 2013
Сообщения
2,518
Лучшие ответы
2
Репутация
438
Награды
2
В этом уроке мы ознакомимся с динамическими библиотеками Windows. Научимся её использовать и создавать.
Файл динамической библиотеки Windows имеет расширение .dll, вы наверняка сталкивались с такими файлами. Библиотеки имеют ряд плюсов в сравнении с обычным .exe файлом:
  • Экономия системной памяти
  • Можно хранить картинки, файлы и тд.
  • Быстрое обновление программы
Например наша программа работает и использует определённый алгоритм действий, этот алгоритм записан в dll и при обновлении этого алгоритма достаточно заменить библиотеку с этим алгоритмом на новую, а так бы пришлось заново скачивать все программу целиком.
Создается библиотека очень просто, открываем Delphi и выбираем File->New->Other->DLL Wizard и вот у нас появилась область кода, сразу стоит заметить, что нельзя использовать формы и компоненты, только ресурсы, функции и процедуры. Мы будем делать калькулятор, но все действия будут записаны в dll. Итак определимся с видом нашей функции: function calc(a, b, index: integer): integer; a и b это наши числа с которыми необходимо произвести действие, про index я расскажу немножечко позже. Над begin и под {R *.res} напишем нашу функцию:
Код:
function calc(a, b, index: integer): integer;
begin
if index = 0 then //если index = 0 то сложим числа
	Result:= a + b;
if index = 1 then //если index = 1 то вычтем из 1 числа 2 число 
	Result:= a - b;	
end;
exports calc;  //Позволим другим программам использовать эту функцию
Теперь скомпилируем библиотеку, но для начала нужно где-нибудь сохранить проект и назовём его "dll", сохраняем и компилируем... вылезла ошибка. Это говорит о том, что все готово, мы просто компилируем без параметра, в папке куда мы сохранили появилась библиотека "dll.dll". Все с библиотекой закончили, теперь надо создать сам калькулятор который будет использовать нашу библиотеку. Создаем новый проект и сохраняем в ту же папку где и dll. Создаем вот такую форму:



Добавим элементы для ComboBox1, кликаем на свойство Items и делаем тоже самое:



И сразу после implementation объявляем нашу функцию:
Код:
function calc(a, b, index: integer): integer; external 'dll.dll';  //Говорим компилятору что эта функция находится в dll.dll
В событии Button1 OnClick пишем код:
Код:
label1.Caption:= IntToStr(calc(StrToInt(Edit1.Text), StrToInt(Edit2.Text), ComboBox1.ItemIndex));
Все теперь запускаем программу, вводим числа, выбираем действие и нажимаем на кнопочку, в Label1 выводится результат:

 
Сверху Снизу