Sådan oprettes og bruges DLLs i Delphi

click fraud protection

Et Dynamic Link Library (DLL) er en samling af rutiner (små programmer), der kan kaldes af applikationer og andre DLL'er. Ligesom enheder indeholder de kode eller ressourcer, der kan deles mellem flere applikationer.

Begrebet DLLs er kernen i Windows-arkitektonisk design, og for det meste er Windows simpelthen en samling af DLL'er.

Med Delphi kan du skrive og bruge dine egne DLL'er og endda opkaldsfunktioner uanset om de er udviklet med andre systemer eller udviklere, som Visual Basic, eller C / C ++.

Oprettelse af et dynamisk linkbibliotek

De følgende par linjer viser, hvordan man opretter en simpel DLL vha. Delphi.

Begynd Delphi og start til Fil> Ny> DLL at oprette en ny DLL-skabelon. Vælg standardteksten, og erstat den med denne:

bibliotek TestLibrary;

anvendelser SysUtils, klasser, dialoger;

procedure DllMessage; eksport;begynde

 ShowMessage ('Hej verden fra en Delphi DLL');

ende;

eksport DllMessage;

beginend. 

Hvis du ser på projektfil for enhver Delphi-applikation, vil du se, at det starter med det reserverede ord

instagram viewer
program. Derimod starter DLL'er altid med bibliotek og derefter a anvendelser klausul for enheder. I dette eksempel DllMessage Proceduren følger, som ikke gør andet end at vise en enkel besked.

I slutningen af ​​kildekoden er der en eksport sætning, der viser de rutiner, der faktisk eksporteres fra DLL på en måde, som de kan kaldes af et andet program. Hvad dette betyder er, at du kan have, sige, fem procedurer i en DLL og kun to af dem (angivet i eksport afsnit) kan kaldes fra et eksternt program (de resterende tre er "subprocedurer").

For at bruge denne DLL, er vi nødt til at samle den ved at trykke på Ctrl + F9. Dette skal oprette en kaldet DLL SimpleMessageDLL.DLL i din projektmappe.

Endelig, lad os tage et kig på, hvordan man kalder DllMessage-proceduren fra en statisk indlæst DLL.

Hvis du vil importere en procedure indeholdt i en DLL, kan du bruge nøgleordet udvendig i proceduredeklarationen. Givet DllMessage-proceduren, der er vist ovenfor, ville erklæringen i den kaldende applikation f.eks. Se sådan ud:

procedure DllMessage; udvendig 'SimpleMessageDLL.dll' 

Den faktiske opfordring til en procedure er ikke andet end:

 DllMessage; 

Hele koden for en Delphi-form (navn: Form1), med en TButton (navngivet Button1), der kalder DLLMessage-funktionen, ser sådan ud:

enhed Enhed 1;

grænseflade


anvendelser

 Windows, meddelelser, SysUtils, varianter, klasser,

 Grafik, kontrol, formularer, dialoger, StdCtrls;


type

 TForm1 = klasse (TForm)

 Knap1: TButton;

procedure Knap1Klik (Afsender: TObject);privat{Private erklæringer}offentlig{Offentlige erklæringer}ende;

Var

 Form1: TForm1;


procedure DllMessage; udvendig 'SimpleMessageDLL.dll'

implementering


{$ R * .dfm}


procedure TForm1.Button1Click (Afsender: TObject);begynde

 DllMessage;

ende;

ende. 

instagram story viewer