BPL vs. DLL a Delphi programozási alkalmazásokban

Amikor Delphi alkalmazást írunk és fordítunk, általában egy futtatható fájlt állítunk elő - egy önálló Windows alkalmazást. Például a Visual Basictől, Delphi készít kompakt exe fájlokba csomagolt alkalmazások, nincs szükség terjedelmes futásidejű könyvtárakra (DLL-ek).

Próbáld ki ezt: indítsd el a Delphit, és fordítsd le az alapértelmezett projektet egy üres űrlappal, ez kb. 385 KB futtatható fájlt eredményez (Delphi 2006). Most menjen a Projekt - Beállítások - Csomagok elemre, és jelölje be az „Összeállítás futásidejű csomagokkal” négyzetet. Összeállítása és futtatása. Voila, az exe mérete 18 KB körül van.

Alapértelmezés szerint a 'Felépítés futásidejű csomagokkal' jelölőnégyzet nincs bejelölve, és minden alkalommal, amikor Delphi alkalmazást készítünk, a fordító összekapcsolja az összes kódot, amelyet az alkalmazásnak szüksége van ahhoz, hogy közvetlenül a az alkalmazás futtatható fájlja. Az alkalmazás önálló program, és nem igényel támogató fájlokat (például DLL-eket) - ezért olyan nagyok a Delphi exe-k.

instagram viewer

A teremtés egyik módja kisebb Delphi programok a 'Borland csomag könyvtárak' vagy röviden a BPL előnyeinek kihasználása.

Mi a csomag?

speciális dinamikus link könyvtár, amelyet a Delphi alkalmazások használnak

A csomagok lehetővé teszik számunkra, hogy alkalmazásunk egyes részeit külön modulokba tegyük, amelyeket meg lehet osztani több alkalmazás között. A csomagok lehetővé teszik az (egyedi) komponensek telepítését a Delphi VCL palettájába is.

Ezért alapvetően kétféle csomag készíthető a Delphi által:

  • Futásidejű csomagok - funkcionalitást biztosítanak, amikor a felhasználó egy alkalmazást futtat - ugyanúgy működnek, mint a szabványos DLL-ek.
  • Tervezési időcsomagok - összetevők telepítésére szolgálnak a Delphi IDE és speciális tulajdonságszerkesztőket hozhat létre az egyedi komponensekhez.
Tervezési csomagok

Ettől a ponttól kezdve ez a cikk foglalkozik a futásidejű csomagokkal és azzal, hogyan segíthetnek a Delphi programozójában.

Egy rossz mit: Önnek nem kötelező a Delphi komponens fejlesztő a csomagok előnyeinek kihasználása érdekében. A kezdő Delphi programozóknak meg kell próbálniuk a csomagokkal való együttműködést - jobban megértik, hogyan működnek a csomagok és a Delphi.

Mikor és mikor nem használja a Csomagokat

A DLL fájlokat leggyakrabban azoknak az eljárásoknak és funkcióknak a gyűjteményeként használják, amelyeket más programok meghívhatnak. Amellett, hogy DLL-eket írunk az egyedi rutinokkal, a Delphi-űrlapot egy DLL-be is elhelyezhetjük (például AboutBox-űrlapot). Egy másik általános módszer az, hogy csak az erőforrásokat tárolja a DLL-ekben. További információ a Delphi és a DLL-ek működéséről ebben a cikkben található: DLL és Delphi.

Mielőtt folytatnánk a DLL-ek és a BPL-ek összehasonlítását, meg kell értenünk a kód futtatható fájlban történő összekapcsolásának két módját: a statikus és a dinamikus összekapcsolást.

Statikus összeköttetés azt jelenti, hogy amikor a Delphi projektet összeállítják, az összes alkalmazáshoz szükséges kód közvetlenül kapcsolódik az alkalmazás futtatható fájljához. A kapott exe fájl tartalmazza a projektben részt vevő összes egység összes kódját. Talán túl sok a kód. Alapértelmezés szerint az új űrlapegységek listáján klauzulát használ, több mint öt egységnél (Windows, Messages, SysUtils, ...). A Delphi linker azonban elég okos ahhoz, hogy a projekt által ténylegesen használt egységekben csak a minimális kódot kapcsolja össze. Statikus összekapcsolással az alkalmazás önálló program, és nem igényel támogató csomagokat vagy DLL-eket (egyelőre felejtsd el a BDE és az ActiveX komponenseket). Delphiben, statikus összeköttetés az alapértelmezett érték.

Dinamikus összeköttetés olyan, mint a standard DLL-ekkel való munka. Vagyis a dinamikus összekapcsolás több funkciót biztosít alkalmazások anélkül, hogy a kódot közvetlenül az egyes alkalmazásokhoz kötnék - a szükséges csomagok betöltésre kerülnek futás közben. A dinamikus összekapcsolás során a legnagyobb dolog az, hogy a csomagok automatikusan betöltődnek az alkalmazásban. A csomagok betöltéséhez nem kell kódot írnia, sem a kódot.

Egyszerűen jelölje be a 'Projekt | Futtatásidejű csomagok készítése' jelölőnégyzetet Beállítások párbeszédpanel. Az alkalmazás legközelebbi összeállításakor a projekt kódját dinamikusan összekapcsolják a futásidejű csomagokkal, ahelyett, hogy az egységeket statikusan csatolnák a futtatható fájlhoz.

instagram story viewer