Jak tworzyć i używać bibliotek DLL w Delphi

Dynamic Link Library (DLL) to zbiór procedur (małych programów), które można wywoływać aplikacje i inne biblioteki DLL. Podobnie jak jednostki, zawierają kod lub zasoby, które mogą być współużytkowane przez wiele Aplikacje.

Koncepcja bibliotek DLL jest rdzeniem projektu architektonicznego systemu Windows, aw większości przypadków system Windows to po prostu zbiór bibliotek DLL.

Dzięki Delphi możesz pisać i używać własnych bibliotek DLL, a nawet wywoływać funkcje niezależnie od tego, czy zostały one opracowane z innymi systemami lub programistami, takimi jak Visual Basiclub C / C ++.

Tworzenie biblioteki Dynamic Link

Poniższe kilka wierszy pokaże, jak utworzyć prostą bibliotekę DLL za pomocą Delphi.

Na początek uruchom Delphi i przejdź do Plik> Nowy> DLL aby zbudować nowy szablon DLL. Wybierz domyślny tekst i zastąp go następującym:

biblioteka TestLibrary;

wykorzystuje SysUtils, klasy, dialogi;

procedura DllMessage; eksport;zaczynać

 ShowMessage („Hello world from Delphi DLL”);

koniec;

eksport DllMessage;

beginend. 

instagram viewer

Jeśli spojrzysz na plik projektu dowolnej aplikacji Delphi, zobaczysz, że zaczyna się od słowa zastrzeżonego program. Natomiast biblioteki DLL zawsze zaczynają się od biblioteka a następnie a wykorzystuje klauzula dla dowolnych jednostek. W tym przykładzie DllMessage postępuje zgodnie z procedurą, która nie robi nic, tylko pokazuje prosty komunikat.

Na końcu kodu źródłowego jest eksport instrukcja, która zawiera listę procedur faktycznie wyeksportowanych z biblioteki DLL w taki sposób, że mogą być wywoływane przez inną aplikację. Oznacza to, że możesz mieć, powiedzmy, pięć procedur w bibliotece DLL i tylko dwie z nich (wymienione w eksport sekcja) można wywołać z programu zewnętrznego (pozostałe trzy to „procedury podrzędne”).

Aby użyć tej biblioteki DLL, musimy ją skompilować, naciskając Ctrl + F9. Powinno to utworzyć bibliotekę DLL o nazwie SimpleMessageDLL.DLL w folderze projektów.

Na koniec przyjrzyjmy się, jak wywołać procedurę DllMessage ze statycznie załadowanej biblioteki DLL.

Aby zaimportować procedurę zawartą w bibliotece DLL, możesz użyć słowa kluczowego zewnętrzny w deklaracji procedury. Na przykład, biorąc pod uwagę powyższą procedurę DllMessage, deklaracja w aplikacji wywołującej wygląda następująco:

procedura DllMessage; zewnętrzny „SimpleMessageDLL.dll” 

Rzeczywiste wywołanie procedury jest niczym innym jak:

 DllMessage; 

Cały kod formularza Delphi (nazwa: Formularz 1), z przyciskiem TB (o nazwie Przycisk 1), który wywołuje funkcję DLLMessage, wygląda mniej więcej tak:

jednostka Rozdział 1;

berło


wykorzystuje

 Windows, Wiadomości, SysUtils, Warianty, Klasy,

 Grafika, formanty, formularze, okna dialogowe, StdCtrls;


rodzaj

 TForm1 = klasa (TForm)

 Button1: TButton;

procedura Button1Click (Sender: TObject);prywatny{Prywatne deklaracje}publiczny{Oświadczenia publiczne}koniec;

var

 Form1: TForm1;


procedura DllMessage; zewnętrzny „SimpleMessageDLL.dll”

realizacja


{$ R * .dfm}


procedura TForm1.Button1Click (Sender: TObject);zaczynać

 DllMessage;

koniec;

koniec.