Porady

BPL vs. DLL

BPL vs. DLL



We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Kiedy piszemy i kompilujemy aplikację Delphi, zwykle generujemy plik wykonywalny - samodzielną aplikację Windows. Na przykład, w przeciwieństwie do Visual Basic, Delphi tworzy aplikacje owinięte w kompaktowe pliki exe, bez potrzeby tworzenia obszernych bibliotek środowiska uruchomieniowego (DLL).

Spróbuj: uruchom Delphi i skompiluj ten domyślny projekt z jednym pustym formularzem, to wygeneruje plik wykonywalny o wielkości około 385 KB (Delphi 2006). Teraz przejdź do Projekt - Opcje - Pakiety i zaznacz pole wyboru „Buduj z pakietami wykonawczymi”. Skompiluj i uruchom. Voila, rozmiar exe wynosi teraz około 18 KB.

Domyślnie opcja „Buduj z pakietami wykonawczymi” nie jest zaznaczona i za każdym razem, gdy tworzymy aplikację Delphi, kompilator łączy cały kod wymagany przez aplikację do uruchomienia bezpośrednio w pliku wykonywalnym aplikacji. Twoja aplikacja jest samodzielnym programem i nie wymaga żadnych plików pomocniczych (takich jak biblioteki DLL) - dlatego exe Delphi są tak duże.

Jednym ze sposobów tworzenia mniejszych programów Delphi jest skorzystanie z „bibliotek pakietów Borlanda” lub w skrócie BPL.

Co to jest paczka?

specjalna biblioteka dynamicznego łącza wykorzystywana przez aplikacje Delphi

Pakiety umożliwiają nam umieszczanie części naszej aplikacji w osobnych modułach, które mogą być współużytkowane przez wiele aplikacji. Pakiety zapewniają również sposób instalowania (niestandardowych) komponentów na palecie VCL firmy Delphi.

Dlatego Delphi może tworzyć dwa typy pakietów:

  • Pakiety wykonawcze - zapewniają funkcjonalność, gdy użytkownik uruchamia aplikację - działają one podobnie jak standardowe biblioteki DLL.
  • Pakiety w czasie projektowania - używane do instalowania komponentów w Delphi IDE i tworzenia specjalnych edytorów właściwości dla niestandardowych komponentów.
Pakiety projektowe

Od tego momentu w tym artykule zajmiemy się pakietami wykonawczymi i tym, w jaki sposób mogą pomóc programistom Delphi.

Jeden zły mit: nie musisz być programistą komponentów Delphi, aby korzystać z pakietów. Początkujący programiści Delphi powinni spróbować pracować z pakietami - lepiej zrozumieją, jak działają pakiety i Delphi.

Kiedy i kiedy nie używać pakietów

Biblioteki DLL są najczęściej używane jako zbiory procedur i funkcji, które mogą wywoływać inne programy. Oprócz pisania bibliotek DLL z niestandardowymi procedurami, możemy umieścić kompletny formularz Delphi w DLL (na przykład formularz AboutBox). Inną popularną techniką jest przechowywanie wyłącznie zasobów w bibliotekach DLL. Więcej informacji o tym, jak Delphi działa z bibliotekami DLL, znajduje się w tym artykule: DLL i Delphi.

Zanim przejdziemy do porównania bibliotek DLL i BPL, musimy zrozumieć dwa sposoby łączenia kodu w pliku wykonywalnym: łączenie statyczne i dynamiczne.

Łączenie statyczne oznacza, że ​​podczas kompilowania projektu Delphi cały kod wymagany przez aplikację jest bezpośrednio łączony z plikiem wykonywalnym aplikacji. Wynikowy plik exe zawiera cały kod ze wszystkich jednostek zaangażowanych w projekt. Można powiedzieć, że za dużo kodu. Domyślnie używa klauzuli dla nowej listy jednostek formularza więcej niż 5 jednostek (Windows, Messages, SysUtils,…). Jednak linker Delphi jest wystarczająco inteligentny, aby połączyć tylko minimum kodu w jednostkach faktycznie używanych przez projekt. Dzięki statycznemu łączeniu nasza aplikacja jest samodzielnym programem i nie wymaga żadnych obsługiwanych pakietów ani bibliotek DLL (na razie zapomnij o komponentach BDE i ActiveX). W Delphi statyczne łączenie jest domyślne.

Dynamiczne łączenie jest jak praca ze standardowymi bibliotekami DLL. Oznacza to, że dynamiczne łączenie zapewnia funkcjonalność wielu aplikacjom bez wiązania kodu bezpośrednio do każdej aplikacji - wszelkie wymagane pakiety są ładowane w czasie wykonywania. Największą zaletą dynamicznego łączenia jest to, że ładowanie pakietów przez twoją aplikację odbywa się automatycznie. Nie musisz pisać kodu, aby załadować paczki, ani nie musisz zmieniać kodu.

Po prostu zaznacz pole wyboru „Buduj z pakietami wykonawczymi” znajdujące się w Projekcie | Okno dialogowe Opcje. Następnym razem, gdy zbudujesz aplikację, kod twojego projektu zostanie dynamicznie połączony z pakietami środowiska wykonawczego, a nie statycznie połączony z plikiem wykonywalnym.


Obejrzyj wideo: How to Fix All .DLL file Missing Error in Windows PC windows 10 (Sierpień 2022).