Tipy a triky v Delphi, díl 171. – DLL knihovny podruhé

Po minulém letmém představení DLL knihoven budeme v tématu pokračovat. Dnes si ukážeme o něco složitější příklad a do knihovny budeme ukládat funkce.
Minulý příklad byl vlastně velmi jednoduchý a zdrojový kód knihovny byl prakticky prázdný, neboť jsme v ukázkové aplikaci využívali pouze zdroje, které byly po kompilaci do knihovny uloženy. Konkrétně se jednalo o ikonu. Reálnější použití však spočívá v uložení procedur a funkcí a to je právě náplní dnešního pokračování.

Ani dnešní příklad však nebude nijak složitý. Začneme stejně jako minule tvorbou nové DLL knihovny. Zvolením příslušné položky v menu nám Delphi vygenerují prakticky prázdný soubor, základ naší budoucí knihovny. Nyní je čas přidat naší funkci. Pro ukázku zvolíme něco jednoduchého, pouze vypíšeme textovou zprávu prostřednictvím funkce ShowMessage. Kvůli použití této funkce musíme mezi používané unity zařadit i Dialogs. Pak již stačí jen napsat naši funkci. Celý výsledný kód knihovny pak bude vypadat nějak takto:

library Project1;

uses
  SysUtils, Classes, Dialogs;

{$R *.res}

procedure Zprava;
begin
  ShowMessage(`Zpráva vyvolaná z DLL knihovny`);
end;

exports Zprava;

end.

V kódu je vidět na první pohled něco neobvyklého navíc a tím je část exports. K čemu je dobrá? V ní prostě specifikujeme, které funkce knihovny budou přístupné volání z vnějšku, protože samozřejmě ne všechny procedury a funkce musí být nutně externě přístupné. Mohou sloužit pouze jako pomocné, čistě pro vnitřní potřebu knihovny. Po zkompilování najdeme v adresáři projektu naší hotovou DLL knihovnu.

Na řadě je aplikace. Vytvoříme nový projekt a na formulář umístíme pouze tlačítko, které bude volat externí funkci. Stejně jako minule nezapomeňte, že vytvořenou knihovnu musíte nakopírovat do složky vytvářené aplikace. Kód projektu pak vypadá takto:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
  procedure Zprava; external `Project1.dll`;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Zprava;
end;

end.

Způsob volání funkce z knihovny je jednoduchý. V deklaraci funkce uvedeme její název a dále musíme specifikovat, že se nachází v externím zdroji, jehož název (tedy název souboru s knihovnou) hned následuje. Postup je to tedy velmi jednoduchý a pro základní funkce dobře použitelný. Složitější příklady si ukážeme zase někdy příště a jelikož je dnešní příklad opravdu velmi krátký a přehledný a celý zdrojový kód vidíte před sebou, není pro tentokrát co stahovat.

Zdroj a inspirace: Zarko Gajic

Diskuze (3) Další článek: Živě hledá autora krátkých zpráv

Témata článku: Software, Windows, Programování, Ukázkový příklad, Trik, Unity, Unit, Knihovna, TRI, Díl, DEL, DLL


Určitě si přečtěte

Jak nahradit webkameru: jde to telefonem, zadarmo a s lepším obrazem

Jak nahradit webkameru: jde to telefonem, zadarmo a s lepším obrazem

** Koronavirus donutil mnohé zaměstnance pracovat z domova ** V souvislosti s tím vzrostla poptávka po webových kamerách ** Webkameru ale nemusíte kupovat – stačí mobil a aplikace!

Karel Kilián | 13

Podívejte se na Windows z roku 1990. Před 30 lety přišly Windows 3.0 a líbily se nám

Podívejte se na Windows z roku 1990. Před 30 lety přišly Windows 3.0 a líbily se nám

** 22. května 1990 uvedl Microsoft Windows 3.0 ** Systém z Microsoftu definitivně udělal lídra na desktopu ** Tehdejší Windows byly vlastně grafickou nadstavbou nad MS-DOS

Jakub Čížek | 74

Jak vlastně funguje Flightradar24: Posloucháme letadla nad celým Českem

Jak vlastně funguje Flightradar24: Posloucháme letadla nad celým Českem

** Flightradar24 zobrazuje polohu letadel v reálném čase ** Když mu pomůžete sbírat data, dostanete nejvyšší paušál zdarma ** Jak to vlastně celé funguje a co je k tomu potřeba?

Jakub Čížek | 28

Galerie: Podívejte se na čínský Linux, se kterým to na svých PC zkusil i Huawei

Galerie: Podívejte se na čínský Linux, se kterým to na svých PC zkusil i Huawei

** Huawei se loni dostal do křížku s USA ** Začal to proto zkoušet s konkurenčním operačním systémem ** Jmenuje se Deepin a před pár dny se dočkal nové verze

Jakub Čížek | 37


Aktuální číslo časopisu Computer

Megatest 24 PC zdrojů

Jak využít umělou inteligenci

10 špičkových sluchátek s ANC

Playstation 5 vs Xbox Series X