Так как складывать числа - это неинтересно, приведу пример с программой всех времен и народов - Hello, World!
Итак, создаем новый проект. Это будет наша ДЛЛ-ка. Назовем ее, скажем, hello.dll. Причем открываем не тот файл, который pas, а тот, который совсем даже dpr! Там в данный момент скорее всего написано:
Код: Выделить всё
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
ну и так далее. Удаляем оттуда все это дело и пишем следующее:
Код: Выделить всё
Library Hello; //Library - дает понять компилятору, что мы вроде как ДЛЛ-ку пишем
uses
Dialogs;
procedure helloworld;//а это и будет та самая наша мегапроцедура.
begin showmessage('Hello, World!'); end;
exports //в этом разделе описывается, какие процедуры и функции экспортируются из
//этой библиотеки, т.е. какие из них можно будет использовать в программах
helloworld index 1 name 'helloworld'; {здесь мы сообщаем, что под нумером 1 мы выставляем на публичное юзание процедуру helloworld, и что называться она будет ровно так же. Можно, конечно, выбрать и другое имя, но зачем это нам? Кстати, если экспортируются несколько функций или процедур, они перечисляются через запятую}
begin
end.
После этого компилируешь. У тебя должен родиться файлик hello.dll. Теперь делаем другой проект, в котором мы будем юзать нашу процедуру. Быстренько ляпаем на формочку кнопочку, а в коде модуля пишем:
Код: Выделить всё
procedure helloworld;external 'hello.dll';
, таким образом, мы говорим, что в программе будет использоваться внешняя (external) функция helloworld из библиотеки hello.dll. Ну, и последний штрих - вешаем на нажатие кнопки следующий обработчик:
Код: Выделить всё
procedure TForm1.Button1Click(Sender: TObject);
begin
helloworld;
end;
Теперь по нажатию кнопки ваша программа будет радостно приветствовать весь мир!