Hur man skapar och använder DLL-filer i Delphi

click fraud protection

Ett dynamiskt länkbibliotek (DLL) är en samling rutiner (små program) som kan ringas av applikationer och andra DLL-filer. Liksom enheter innehåller de kod eller resurser som kan delas mellan flera tillämpningar.

Konceptet med DLL-filer är kärnan i Windows arkitektoniska design, och för det mesta är Windows helt enkelt en samling av DLL-filer.

Med Delphi kan du skriva och använda dina egna DLL-filer och till och med anropsfunktioner oavsett om de har utvecklats med andra system eller utvecklare, som Visual Basic, eller C / C ++.

Skapa ett Dynamic Link Library

Följande få rader visar hur man skapar en enkel DLL med Delphi.

Till början startar Delphi och navigerar till Fil> Ny> DLL att bygga en ny DLL-mall. Välj standardtext och ersätt den med den här:

bibliotek TestLibrary;

användningar SysUtils, klasser, dialoger;

procedur DllMessage; exportera;Börja

 ShowMessage ('Hej värld från en Delphi DLL');

slutet;

export DllMessage;

beginend. 

Om du tittar på projektfil för alla Delphi-applikationer ser du att det börjar med det reserverade ordet

instagram viewer
program. Däremot startar DLL alltid med bibliotek och sedan a användningar klausul för alla enheter. I det här exemplet, DllMessage proceduren följer, som inte gör något annat än att visa ett enkelt meddelande.

I slutet av källkoden finns en export uttalande som visar de rutiner som faktiskt exporteras från DLL på ett sätt som de kan anropas av ett annat program. Vad detta betyder är att du kan ha, säg, fem procedurer i en DLL och endast två av dem (listade i export avsnitt) kan anropas från ett externt program (de återstående tre är "delprocedurer").

För att använda denna DLL måste vi sammanställa den genom att trycka på Ctrl + F9. Detta bör skapa en DLL som heter SimpleMessageDLL.DLL i din projektmapp.

Slutligen, låt oss ta en titt på hur man kan ringa DllMessage-proceduren från en statiskt laddad DLL.

För att importera en procedur i en DLL kan du använda nyckelordet extern i förfarandedeklarationen. Med tanke på DllMessage-proceduren som visas ovan skulle till exempel deklarationen i den anropande applikationen se ut så här:

procedur DllMessage; extern 'SimpleMessageDLL.dll' 

Den faktiska uppmaningen till ett förfarande är inget annat än:

 DllMessage; 

Hela koden för en Delphi-form (namn: Form1), med en TButton (benämnd button1) som kallar DLLMessage-funktionen ser ut så här:

enhet Enhet 1;

gränssnitt


användningar

 Windows, meddelanden, SysUtils, varianter, klasser,

 Grafik, kontroller, formulär, dialoger, StdCtrls;


typ

 TForm1 = klass (TForm)

 Knapp1: TButton;

procedur Knapp1Klicka (avsändare: TObject);privat{Privata deklarationer}offentlig{Offentliga förklaringar}slutet;

var

 Form1: TForm1;


procedur DllMessage; extern 'SimpleMessageDLL.dll'

genomförande


{$ R * .dfm}


procedur TForm1.Button1Click (avsändare: TObject);Börja

 DllMessage;

slutet;

slutet. 

instagram story viewer