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,