Conseils

BPL vs. DLL

BPL vs. DLL

Lorsque nous écrivons et compilons une application Delphi, nous générons généralement un fichier exécutable, une application Windows autonome. Contrairement à Visual Basic, par exemple, Delphi produit des applications encapsulées dans des fichiers exe compacts, sans avoir besoin de bibliothèques d'exécution volumineuses (DLL).

Essayez ceci: démarrez Delphi et compilez ce projet par défaut avec un formulaire vierge, cela produira un fichier exécutable d’environ 385 Ko (Delphi 2006). Maintenant, allez dans Projet - Options - Packages et cochez la case 'Construire avec les packages d'exécution'. Compiler et courir. Voilà, la taille de l'exe est maintenant d'environ 18 KB.

Par défaut, l'option 'Construire avec les packages d'exécution' est désactivée et chaque fois que nous créons une application Delphi, le compilateur lie tout le code dont votre application a besoin pour s'exécuter directement dans le fichier exécutable de votre application. Votre application est un programme autonome et ne nécessite aucun fichier de support (comme les DLL). C'est pourquoi les fichiers EXE de Delphi sont si volumineux.

Une façon de créer des programmes Delphi plus petits consiste à tirer parti des «bibliothèques de packages Borland» ou BPL.

Qu'est-ce qu'un paquet?

bibliothèque spéciale de liens dynamiques utilisée par les applications Delphi

Les packages nous permettent de placer des parties de notre application dans des modules distincts pouvant être partagés entre plusieurs applications. Les packages permettent également d'installer des composants (personnalisés) dans la palette VCL de Delphi.

Par conséquent, Delphi peut créer essentiellement deux types de packages:

  • Packages d'exécution - fournissent des fonctionnalités lorsqu'un utilisateur exécute une application - ils fonctionnent beaucoup comme des DLL standard.
  • Packages de conception: utilisés pour installer des composants dans l'EDI Delphi et créer des éditeurs de propriétés spéciaux pour les composants personnalisés.
Forfaits de conception

À partir de ce moment, cet article traitera des packages d'exécution et de la manière dont ils peuvent aider le programmeur Delphi.

Un faux mit: vous n'êtes pas obligé d'être un développeur de composants Delphi pour tirer parti des packages. Les programmeurs Delphi débutants devraient essayer de travailler avec des packages - ils comprendront mieux le fonctionnement de ces derniers et de Delphi.

Quand et quand ne pas utiliser les paquets

Les DLL sont le plus souvent utilisées comme des ensembles de procédures et de fonctions que d'autres programmes peuvent appeler. Outre l'écriture de DLL avec des routines personnalisées, nous pouvons placer un formulaire Delphi complet dans une DLL (par exemple, un formulaire AboutBox). Une autre technique courante consiste à ne stocker que des ressources dans des DLL. Vous trouverez plus d'informations sur le fonctionnement de Delphi avec les DLL dans cet article: DLL et Delphi.

Avant de passer à la comparaison entre les DLL et les BPL, nous devons comprendre deux manières de lier du code dans un exécutable: la liaison statique et la liaison dynamique.

Liaison statique Cela signifie que lorsqu'un projet Delphi est compilé, tout le code requis par votre application est directement lié au fichier exécutable de votre application. Le fichier exe résultant contient tout le code de toutes les unités impliquées dans un projet. Trop de code, pourriez-vous dire. Par défaut, la clause uses pour une nouvelle unité de formulaire répertorie plus de 5 unités (Windows, Messages, SysUtils,…). Cependant, l'éditeur de liens Delphi est suffisamment intelligent pour ne lier que le minimum de code dans les unités réellement utilisées par un projet. Avec la liaison statique, notre application est un programme autonome et ne nécessite aucun package ni DLL de prise en charge (oubliez les composants BDE et ActiveX pour le moment). Dans Delphi, la liaison statique est la valeur par défaut.

Lien dynamique est comme travailler avec des DLL standard. C'est-à-dire que la liaison dynamique fournit des fonctionnalités à plusieurs applications sans lier le code directement à chaque application - tous les packages requis sont chargés au moment de l'exécution. La meilleure chose à propos des liens dynamiques est que le chargement des paquets par votre application est automatique. Vous n'êtes pas obligé d'écrire du code pour charger les packages et vous ne devez pas changer de code.

Cochez simplement la case "Construire avec les packages d'exécution" dans le menu Projet | Boîte de dialogue Options. La prochaine fois que vous construirez votre application, le code de votre projet sera lié dynamiquement aux packages d'exécution plutôt que d'avoir des unités liées statiquement dans votre fichier exécutable.

Voir la vidéo: How to Fix All .DLL file Missing Error in Windows PC windows 10 (Avril 2020).