|
|
Une DLL (Dynamic
Link Library) signifie bibliothèque à liaison dynamique. DLL de fonction Ce type de DLL permet de stocker des fonctions (et des procédures) qui peuvent etre utiliser dans différente application. DLL de ressources Ce type de DLL contient des ressources
Windows (bitmaps, icones, curseurs, ...). Ce type de DLL permet de réutiliser
ces DLL par d'autres langages de programmation.
Pour construire une DLL, il faut cliquez dans le menu "Fichiers" de Delphi puis sur "Nouveau...". Choisissez ensuite "DLL" et cliquez sur le bouton "Ok". Voici ce que vous obtienderez :
Pour commencer, il faut savoir qu'il existe deux types de fonctions et de procédures dans une DLL de fonction : - Il y a les fonctions et procédures qui serviront en interne du code source et ne seront pas accecibles. - Il y a également les fonctions et procédure qui seront appelés par le programme exécutable. C'est pour cela, qu'il faut définir les fonctions et les procédures qui seront exportées. Les fonctions et procedures qui seront exportées pourront être utiliser par un programme.
Il existe trois types d'exportations pour une DLL : - L'exportation par noms de fonctions et de procédures. - L'exportation par noms. - L'exportation par numéros d'ordre. Exportation par noms de fonctions et de procedures Voici l'exportation par noms de fonctions et de procédures, la plus courante.
L'exportation se fait, ici par le nom des fonctions et des procédures. Le mot clé "exports" sert à exporter une fonction ou procédure. La procedure "Bruit" pourra alors être appelé par un programme. Exportation par noms L'exportation par noms consiste à utiliser le mot "name" pour donner un nom d'exportation aux noms des fonctions et des procedures.
Exportation par numéro d'ordre Pour exporter des procédures et des fonctions, vous pouvez aussi utiliser des numéros d'ordre.
Vous pouvez également associer l'exportation par noms et l'exportation par numéros d'ordre.
Pour importer une fonction ou une procédure dans un programme, vous spécifirez maintenant le numéro d'ordre. Convention d'appel Il existe plusieurs sortes de convention d'appel : - CDecl - Pascal - Register - StdCall. La plus utilisée est "Stdcall". A noté qu'il n'est plus nécessaire de qualifier les fonctions et procedures exportées depuis Delphi 2 par la convention d'appel "StdCall" car par défaut la routine a pour convention "StdCall" . Il est toutefois conseillé de le faire.
Tout d'abord, créez une nouvelle application Delphi. Pour utiliser les fonctions et procédures d'une DLL, il faut les importer. L'importation se fait par une déclaration qui peut être dans la partie interface ou dans la partie implementation du code source de votre programme. Il existe trois types d'importations pour une DLL : - L'importation par nom. - L'importation par surnom. - L'importation par index. Importation par nom Voici un exemple d'importation par nom de deux procédures provenenant d'une DLL appelée "Project1".
Il n'est pas nécessaire également de qualifier les fonctions et procedures importées par la convention d'appel "StdCall". Il est toutefois conseillé de le faire.
Vous appelerez les procedures par "Bruit" et "DeuxBruit".
Importation par surnom Ce type d'importation permet lorsque vous utilisez plusieurs DLL et que deux procedures ou que deux fonctions possède le même nom de changer le nom d'utilisation de ces deux fonctions ou de ces deux procedures dans votre programme.
Vous appelerez maintenant les procedures par "Br1" et "Br2". Importation par index L'importation par index sert aussi si il y a deux noms de procédures ou de fonctions identiques. Il faut alors indiquer la position de la routine dans le source de la DLL.
Cette importation ne peut être effectuer que si c'est vos propres DLL car vous aurez accès aux sources et donc aux numéros d'index dans le source de la DLL. Si ce n'est pas vos DLL, vous ne pourrez pas savoir le numéro d'index si il y en a un. Vous appelerez les procedures par "Br1" et "Br2".
Le chargement dynamique d'une DLL permet d'allèger les ressources mémoire dans le cas où vous importez beaucoup de fonctions et de procedures. Le but est de charger une fonction ou une procedure lorsque que l'on en a besoin.
Pour appeler une
fonction ou une procedure dans un programme, il faut déclarer
un type qui décrit la procédure ou la fonction. Il faut
insèrer aussi les paramètres de la fonction ou de la procedure
si il y en a.
Voici un programme permettant d'inclure une form dans une DLL. Vous pouvez ensuite, l'utiliser dans un autre programme grâce à l'importation d'une procedure issue de la DLL.
|
Tous droits réservés - Contacts |