Létrehozása és használata dll a Delphi (dll kötődését a program dinamikus terhelés)

DLL-könyvtár lehetővé teszi egyesíti egy újrafelhasználható kód. A funkciók a DLL - könyvtár lehet csatlakoztatni dinamikusan futásidőben, ellentétben a funkciók Delphi csomagok hivatkoznak be statikusan a kérelmet.

Létrehozásához DLL-könyvtár, kezdődik, hogy végre a menü parancs File | New | Egyéb, és válassza ki az Új tétel DLL Wizard Új elem párbeszédoldalra.

DLL Wizard varázsló automatikusan létrehoz egy üres sablont DLL-könyvtár. Ellentétben a hagyományos modulok kulcsszóval kezdődő egység, DLL könyvtár modul kulcsszóval kezdődik könyvtárban. A szekció használja a modul DLL-könyvtár csak internetkapcsolatot igényel két csomag: SysUtils és osztályok.

Létrehozása DLL-függvény több szintből áll:

1. Először is, a végrehajtási szakaszban a modult, az aláírás funkció és a programkód feladatok ellátására.

2. Ezután az aláírás funkciót kell meghatározni, hogy a hívás opciók lesznek.

3. Végül, amelynek az a feladata, hogy ne csak a modulon belül, hanem az oka a más alkalmazások, meg kell nyilvánítani, mivel az export az export oldalán.

A funkciók a DLL-könyvtár is lehet nevezni mind a kifejlesztett alkalmazások Delphi, tedd és írt alkalmazások más programozási nyelvek, mint a C ++.

A módszer az elhaladó paraméterek jelzi pontosvesszővel után függvény leírása. Például:

funkció F1 (X, Y, Z: Real]: Real; stdcall;.

Különböző módokon elhaladó paraméterek határozzák meg a sorrendben a paraméter halad (balról jobbra vagy jobbról balra), és jelezze, aki felszabadítja a verem memória (hívó vagy hívott eljárás). Amikor egy DLL-könyvtárak összetevők, azaz az alkalmazások más programozási nyelvek, akkor használja a megfelelő módosító hívást. C ++ alkalmazások módosító stdcall hívást.

Annak érdekében, hogy a funkció ismertetett, a DLL-könyvtár hívható másik alkalmazás, ezt a funkciót kell exportálni. A lista az összes exportált meghatározott feladatokat az export részén, vesszővel elválasztva

és megszűnik pontosvesszővel. Export műveletek végezhetők három módja van:

• A függvény nevét használják a DLL-könyvtár;

• A funkció megadott név, mint a neve az export;

• A kijelölt funkciók az index.

Ha egy adott funkció index, meg kell határozni a kivitelre szakasz után a függvény nevét a névmutató.

Az exportált hívtak meg a nevét, amely eltér a nevet használják a DLL-könyvtár a kivitelre szakasz után a függvény nevét, írja be a kulcsszó nevét, és az új neve az export ezt a funkciót.

DLL - könyvtár nem végrehajtható modult. Mert a kód elegendő összeállítani a projekt.

funkció F1 (X, Y: Egész): egész; stdcall;

Statikus csatlakozás DLL-könyvtár

DLL-könyvtár lehet csatlakoztatni statikusan vagy dinamikusan. Amikor csatlakozik egy DLL-könyvtár betöltődik a memóriába alkalmazásokat.

Ha statikus kapcsolat DLL-könyvtár betöltését követően, az alkalmazás indulásakor. Az egész végrehajtását az alkalmazás funkciók nevét az importált DLL-könyvtár, amely kapcsolatban állt statikusan azt jelzi, ugyanaz a funkciója (belépési pont a DLL) ugyanabban a DLL. Minden funkció a DLL-könyvtár, amelyet használni az alkalmazás eredetileg kell feltüntetni a külső. Ezért szükséges meghatározni, ha szükséges, hívja a módosítót. Ha a funkció meghívása az index, meg kell adnia a nevét használják az alkalmazást, és a funkció kódot DLL-könyvtár neki.

Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika,

Controls, Forms, Dialogs, StdCtrls;

Editl: tSzerkesztés; [Field bevitelére egy első értéke>

Edit2: tSzerkesztés; (Input mező a második érték>

Edit3: tSzerkesztés; (Golf eredmény kijelzés

a funkciója a DLL-könyvtár>

Buttonl: TButton;

Button2: TButton; [A hívás funkció által használt index>

eljárás ButtonlClickfSender: TObject);

eljárás Button2Click (Sender: TObject);

eljárás TForml.Button2Click (Sender: TObject);

Dinamikus kapcsolat DLL-könyvtár

Ezzel szemben a statikus kapcsolat DLL-könyvtár, fellépett a kérelem benyújtásának időpontjában a letöltések dinamikus kapcsolat DLL-könyvtárak is elvégezhető bármely pontján a programban. A funkció meghívása után, akkor letilthatja DLL-könyvtárból. Egyidejű használatát több DLL-könyvtárak, ez ad egy kézzelfogható memória megtakarítás. Dinamikusan csatlakozni DLL-könyvtárhasználati Windows API funkciók. Windows API - egy sor standard funkciók végrehajtására használják a kölcsönhatás az operációs rendszer.

Amikor a funkció a dynamic link library DLL-helyett függvényt meghatározó nevet, mint egy külső helyzet statikus kötelező definiálni kell egy új típusú típusának megfelelő, a hívott függvény, és hozzon létre egy változót a típus.

Annak érdekében, hogy végre a függvényhívás a dynamic link DLL-könyvtár, kövesse az alábbi lépéseket:

1. Hozzon létre egy új stílust. típusának megfelelő, a hívott függvény (új neve beírható után szakasz típus).

TMyFl = funkció (i, j: Egész): egész; stdcall;

2. szakaszban var modul interfész-részben hozzon létre egy változó típusú funkció generált. Például: MyFl. TMyFl;

3. betöltése előtt a DLL-könyvtár, hogy egy változót az Integer, amely tartalmaz egy fogantyút link library.

4. Hívja a LoadLibrary, teljesítő kapcsolat DLL-könyvtár. Például; h: = LoadLibrary ( 'Projectl.dll');

5. Ellenőrizze, hogy csatlakozik sikeresen könyvtárban. Ha egy DLL-könyvtár neve helytelen vagy a könyvtár nem található, LoadLibrary függvény visszatérési értéke 0.

8. Ebben a szakaszban lehet elvégezni függvényhívás egy dinamikusan kapcsolódik DLL-könyvtár.

9. Annak érdekében, hogy kiadja és mentesítés, illetve DLL-könyvtár, hívja FreeLibrary eljárás elvégzésére off-DLL könyvtár.

Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika,

Controls, Forms, Dialogs, StdCtrls;

Könyvtárhasználati DLL-call közös modális párbeszédeket.

Az eredmény az eljárás a DLL-könyvtárat jelenít modális dialógus. Ehhez az export módszer segítségével egy objektum formáját, megjelenítheti azt a modális dialógus, majd törli az objektumot formában. Ebben az esetben maga a forma biztosítania kell hívni a következő eljárás befejezéséhez a párbeszéd.

Ahhoz, hogy hozzon létre egy öntőforma, Create eljárás a paraméter, amelyet átadott a mutatót a szülő formában - formájában a hívó alkalmazásnak. Ez a paraméter átadásra a DLL-függvény.

A következő példa a DLL-könyvtár, amely tartalmazza a funkció megjelenítéséhez használt modális űrlapot, és visszaküldi azt a bevitt értékeket.

Unitl_DLL in 'Unitl_DLL.pas';

eljárás MyModalForm (var Z: integer; F: TForm1); stdcall;

(F paraméter kerül átvitelre az eljárás hívás és egy mutatót

A szülő formában - formájában a hívó alkalmazás>

(Az első paraméter használják a visszatérési érték>

Annak érdekében, hogy ezt a DLL-könyvtár létrehozása a célja a hívás modális dialógus egyaránt használható dinamikus és statikus kötődést. A következő példa egy függvény hívás

DLL-könyvtár, és megjelenít egy modális párbeszédpanel.

Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika,

Kapcsolódó cikkek