Begin end.

Обрати внимание, что функция у нас объявлена не так как всегда. В конце строки объявления, после типа возвращаемого значения стоит ключевое слово StdCall. Оно говорит о том, что для вызова процедуры нужно использовать стандартный тип вызова.

Я тебе уже говорил, что все параметры, передаваемые в процедуры и в функции, передаются через стек. Если не указать ключевое слово StdCall, то параметры будут передаваться способом, заложенным фирмой Borland. Этот способ работает быстрее, но он не совместим со стандартными правилами. Если ты уверен, что к процедуре будут обращаться только программы скомпилированные компиляторами фирмы Borland, то можешь не ставить это ключевое слово. Но если библиотека будет выложена на всеобщее использование или к ней будут обращаться программы сторонних разработчиков, то желательно ставить StdCall, иначе у программистов на языках Visual C++ или других языках будут проблемы. Я сделал для себя правилом всегда ставить StdCall, потому что способ Borland даёт незначительный выигрыш.

В остальном, функция ничем не отличается от тех, что мы уже писали.

После описания функции идёт новое ключевое слово exports. После этого ключевого слова должно идти описания процедур, которые должны быть доступны внешним программам. Если нашу функцию Summ не описать в разделе exports, то мы её не сможем вызвать из внешней программы.

Теперь откомпилируй проект (нажми Ctrl+F9 или выбери из меню Project пункт Compile FirsDLLProject), чтобы создать нашу динамическую библиотеку. Можешь не пытаться запускать проект, потому что это библиотека, и она не может выполняться самостоятельно. Так что, единственное, что ты можешь увидеть – ошибку.

Теперь напишем программу, которая будет использовать написанную функцию из динамической библиотеки. Создай новый проект простого приложения (File->New->Application). На форму брось только одну кнопку и по её нажатия напиши следующий код: