How use DLL (Dynamic Link Library) in Delphi

Creating a DLL (Dynamic Link Library) file in Delphi allows you to encapsulate reusable code and share it across multiple applications. Here’s a step-by-step guide on how to create a DLL in Delphi and use it in your Delphi programming projects:

Step 1: Creating the DLL Project

  1. Launch Delphi and go to “File” -> “New” -> “Other” -> “Delphi Projects” -> “DLL” to create a new DLL project.
  2. Choose a name and location for your project, and click “OK” to create it.

Step 2: Writing the DLL Code

  1. In the Code Editor window, you’ll see a unit file with some default code. Replace it with your own code or write the functionality you want to encapsulate in the DLL.
  2. Make sure to export the functions or procedures you want to use in other applications by adding the “exports” directive before each procedure or function declaration. Example:

library MyDLL;

uses

System.SysUtils,

System.Classes;

{$R *.res}

function AddNumbers(a, b: Integer): Integer; stdcall; export;

begin

Result := a + b;

end;

exports

AddNumbers;

begin

end.

Step 3: Building the DLL

  1. Go to “Project” -> “Build MyDLL” to compile and build the DLL.
  2. After a successful build, you should have a DLL file generated in the project’s output directory.

Step 4: Using the DLL in a Delphi Project

  1. Open or create a new Delphi project where you want to use the DLL.
  2. Go to “Project” -> “Options” -> “Directories/Conditionals” -> “Library” and add the directory path where the DLL file is located.
  3. Add the following code to the “uses” section of your project file to import the functions from the DLL:

uses

…, MyDLL;

Now you can call the exported functions from the DLL in your Delphi project, as if they were regular functions. Example:

procedure TForm1.Button1Click(Sender: TObject);

var

result: Integer;

begin

result := AddNumbers(2, 3);

ShowMessage(‘The result is: ‘ + IntToStr(result));

end;

How to create a DLL for a Windows service and use it in Delphi:

Step 1: Creating the DLL Project

  1. Launch Delphi and go to “File” -> “New” -> “Other” -> “Delphi Projects” -> “DLL” to create a new DLL project.
  2. Choose a name and location for your project, and click “OK” to create it.

Step 2: Writing the DLL Code

In the Code Editor window, replace the default code with the following:

library MyServiceDLL;

uses

System.SysUtils,

System.Classes,

Winapi.Windows,

Winapi.Messages;

{$R *.res}

procedure ServiceMain(NumServicesArgs: Integer; ServiceArgVectors: LPTSTR); stdcall;

var

StatusHandle: THandle;

ServiceStatus: TServiceStatus;

begin

// Set initial service status

ServiceStatus.dwServiceType := SERVICEWIN32OWN_PROCESS;

ServiceStatus.dwCurrentState := SERVICESTARTPENDING;

ServiceStatus.dwControlsAccepted := SERVICEACCEPTSTOP or SERVICEACCEPTSHUTDOWN;

ServiceStatus.dwWin32ExitCode := 0;

ServiceStatus.dwServiceSpecificExitCode := 0;

ServiceStatus.dwCheckPoint := 0;

ServiceStatus.dwWaitHint := 0;

// Register the service control handler

StatusHandle := RegisterServiceCtrlHandler(”, @ServiceHandler);

if StatusHandle = 0 then

Exit;

// Tell the service controller that the service is starting

ServiceStatus.dwCurrentState := SERVICE_RUNNING;

SetServiceStatus(StatusHandle, ServiceStatus);

// Perform service tasks here

// Tell the service controller that the service has stopped

ServiceStatus.dwCurrentState := SERVICE_STOPPED;

SetServiceStatus(StatusHandle, ServiceStatus);

end;

procedure ServiceHandler(Control: DWORD); stdcall;

begin

case Control of

SERVICECONTROLSTOP,

SERVICECONTROLSHUTDOWN:

// Perform cleanup or stop operations here

// Set the service status to stopped

ServiceStatus.dwCurrentState := SERVICE_STOPPED;

end;

SetServiceStatus(StatusHandle, ServiceStatus);

end;

exports

ServiceMain;

begin

end.

Step 3: Building the DLL

  1. Go to “Project” -> “Build MyServiceDLL” to compile and build the DLL.
  2. After a successful build, you should have a DLL file generated in the project’s output directory.

Step 4: Using the DLL in a Delphi Project

  1. Open or create a new Delphi project where you want to use the DLL.
  2. Go to “Project” -> “Options” -> “Directories/Conditionals” -> “Library” and add the directory path where the DLL file is located.
  3. Add the following code to the “uses” section of your project file to import the functions from the DLL:

uses

…, MyServiceDLL;

  1. Now you can call the exported ServiceMain function from the DLL in your Delphi project, as if it were a regular function.Example:procedure TForm1.Button1Click(Sender: TObject);beginServiceMain(0, nil); // Call the ServiceMain function from the DLLend;

Note that this is a simplified example that demonstrates the basic structure of a Windows service DLL. In a real-world scenario, you would typically add more functionality and handle service-specific tasks within the ServiceMain procedure.

Remember to register and install the service using appropriate tools like sc.exe or third-party service manager applications.

That’s it! You have created a DLL in Delphi and successfully used it in your Delphi project. Remember to distribute the DLL file along with your application if you plan to run it on other machines.

Happy Coding!

Related Posts

90 thoughts on “How use DLL (Dynamic Link Library) in Delphi

  1. Эта статья сочетает познавательный и занимательный контент, что делает ее идеальной для любителей глубоких исследований. Мы рассмотрим увлекательные аспекты различных тем и предоставим вам новые знания, которые могут оказаться полезными в будущем.
    Подробнее можно узнать тут – https://medalkoblog.ru/

  2. Играешь в Fallout 76? Хочешь купить вещи Fallout 76? Широкий ассортимент предметов, включая силовую броню, легендарное оружие, хлам, схемы и многое другое для Fallout 76 на PC, Xbox и PlayStation. Мы предлагаем услуги буста, прокачки персонажа и готовые комплекты снаряжения.

  3. Discover Pornjourney AI, a platform where artificial intelligence makes your desires come true. Create your perfect AI heroines, chat in real time, and enjoy personalized content tailored to your tastes. The next level of sex technology is here.

  4. Металлические ограждения https://osk-stroi.ru для дома, дачи, промышленных и общественных объектов. Качественные материалы, долговечность, устойчивость к коррозии. Быстрая установка и индивидуальное изготовление под заказ.

  5. Пиломатериалы от производителя https://tsentr-stroy.ru по доступным ценам. В наличии обрезная и необрезная доска, брус, вагонка, доска пола, рейка и другие изделия. Работаем с частными и корпоративными заказами. Качество, доставка, гибкие условия.

  6. Инвестиции в строительство https://permgragdanstroy.ru жилой и коммерческой недвижимости. Прибыльные проекты, прозрачные условия, сопровождение на всех этапах. Участвуйте в строительстве с гарантированной доходностью.

  7. Агентство недвижимости https://assa-dom.ru покупка, продажа, аренда квартир, домов, участков и коммерческих объектов. Полное сопровождение сделок, помощь с ипотекой, юридическая поддержка. Надежно, удобно, профессионально.

  8. Недвижимость Черноземья https://nedvizhimostchernozemya.ru квартиры, дома, участки, коммерческие объекты. Продажа и аренда во всех крупных городах региона. Надежные застройщики, проверенные предложения, прозрачные сделки.

  9. Бесплатная панель управления hosting panel 1Panel сервером с открытым исходным кодом. Удобный интерфейс, поддержка популярных ОС, автоматизация задач, резервное копирование, управление сайтами и базами. Оптимально для вебмастеров и системных администраторов.

  10. Ищете, где https://motoreuro.ru с гарантией и доставкой? Мы предлагаем проверенные агрегаты с пробегом до 100 тыс. км из Японии, Европы и Кореи. Подбор, установка, оформление документов — всё под ключ.

  11. Станки для производства пресс листогиб металлообработка, резка, сварка, автоматизация. Продажа новых и восстановленных моделей от ведущих брендов. Гарантия, обучение персонала, техподдержка.

  12. Онлайн сервис быстрое скачивание изображений с сайта для получения картинок с любого сайта. Вставьте URL — и мгновенно получите изображения на своём устройстве. Поддержка всех форматов, никаких ограничений и лишних действий. Работает бесплатно и круглосуточно.

  13. Изготовление и печать наклеек купить. Стикеры для бизнеса, сувениров, интерьера и упаковки. Печатаем тиражами от 1 штуки, любые материалы и формы. Качественно, недорого, с доставкой по СПб.

  14. Удаление волос лазерная эпиляция удаление: гладкая кожа на долгое время. Аппараты последнего поколения, опытные мастера, комфортная обстановка. Эпиляция для женщин и мужчин. Онлайн-запись, гибкие цены, без лишнего стресса.

  15. Профессиональная клиника лазерной эпиляции. Эффективное удаление волос на любом участке тела, подход к любому фототипу. Сертифицированные специалисты, стерильность, скидки. Запишитесь прямо сейчас!

  16. Избавьтесь от волос лазерная эпиляция волос навсегда — с помощью лазерной эпиляции. Эффективные процедуры на любом участке тела, минимальный дискомфорт, заметный результат уже после первого сеанса.

  17. Квартирный и офисный https://declarant-iv.livejournal.com/20546.html переезд под ключ с грузчиками. Бережная упаковка, погрузка, транспортировка и сборка мебели. Быстро, аккуратно, по доступной цене. Работают опытные специалисты.

  18. Свежие новости мма: бои, результаты, анонсы турниров, интервью и трансферы бойцов. UFC, Bellator, ACA и другие промоушены. Следите за карьерой топовых бойцов и громкими поединками в мире смешанных единоборств.

  19. Fresh and relevant latest football news: matches, results, transfers, interviews and reviews. Follow the events of the Champions League, RPL, EPL and other tournaments. All the most important from the world of football – on one page!

  20. Самые главные новости серии а каждый день: от закулисья клубов до громких голов. Новости РПЛ, НХЛ, Бундеслиги, Серии А, Ла Лиги и ЛЧ. Прямые эфиры, прогнозы, аналитика и трансферные слухи в одном месте.

  21. Читайте свежие новости nhl онлайн. Результаты матчей, расклады плей-офф, громкие трансферы и слухи. Всё о российских и зарубежных лигах.

  22. Свежие актуальные Новости хоккея со всего мира. Результаты матчей, интервью, аналитика, расписание игр и обзоры соревнований. Будьте в курсе главных событий каждый день!

  23. Can you be more specific about the content of your article? After reading it, I still have some doubts. Hope you can help me.

  24. Читайте о необычном http://phenoma.ru научно-популярные статьи о феноменах, которые до сих пор не имеют однозначных объяснений. Психология, физика, биология, космос — самые интересные загадки в одном разделе.

  25. Мир полон тайн https://phenoma.ru читайте статьи о малоизученных феноменах, которые ставят науку в тупик. Аномальные явления, редкие болезни, загадки космоса и сознания. Доступно, интересно, с научным подходом.

  26. Научно-популярный сайт https://phenoma.ru — малоизвестные факты, редкие феномены, тайны природы и сознания. Гипотезы, наблюдения и исследования — всё, что будоражит воображение и вдохновляет на поиски ответов.

  27. Научно-популярный сайт https://phenoma.ru — малоизвестные факты, редкие феномены, тайны природы и сознания. Гипотезы, наблюдения и исследования — всё, что будоражит воображение и вдохновляет на поиски ответов.

Leave a Reply

Your email address will not be published. Required fields are marked *