Web loisir, Web Informatique

MAJ : 28 juin 2002

  Le site Web du loisir et de l'informatique

Trucs et astuces Delphi 5

Utilisez cette barre de navigation pour vous déplacer dans ce site


Sommaire
Page d'accueil du site

Delphi
Mes programmes
Multi-Média Conception
Trucs et astuces
Aide sur HelpWork Shop
Aide sur Delphi X (les bases)
Ma charte de création d'interface

 

 

 

 

 

 

 

 

 

 

 

 

  Bibliothèque de trucs et d'astuces
Quand on programme en Delphi (ou avec un autre langage), on trouve sur le moment une "bonne idée". C'est une idée qui nous rend fier et qui est l'aboutissement de notre progression... Seulement voila, une fois utilisée (ou plutôt perdue dans un programme), on ne sait plus comment faire quand on en a de nouveau besoin. C'est pourquoi, j'ai décidé de faire un fichier d'aide au format HLP (pour windows) contenant mes fonctions, procédures et tous mes trucs et astuces dans le but d'avoir une bibliothèque de code disponible quand j'en ai besoin.
Téléchargez cette aide ici : Bibliothèque de trucs et d'astuces Delphi, fichier HLP (31 Ko).

Comment charger une DLL dynamiquement
Dans un premier temps, une DLL permet de contenir des fonctions et des procédures qui peuvent être appelées par d'autre programmes. L'exemple suivant va vous apprendre comment charger une DLL mais de manière dite "dynamique".

Principe
Il faut affecter un handle avec le fichier DLL concerné. Le handle point sur la DLL qui pourra être utilisée par la suite. Ensuite, il faut charger une variable de type procédure ou fonction avec la procédure (ou fonction) de la DLL. Un foie la DLL utilisée, il faut impérativement libérer la ressource (la DLL chargée) sans quoi cela provoques des bugs monumentaux.

Exemple
Commencez par les déclarations :
Créez dans la clause "
type" une variable du type procedure :
TProcedureDLL = procedure (Nombre : Integer); stdcall ;
Dans la clause "var", déclarez les variables suivantes :
MaDLL : THandle ;
ProcedureDLL : TProcedureDLL ;
Il faut maintenant charger la DLL comme suivant :
MaDLL := LoadLibrary ('MonFichier.dll')
ProcedureDLL := GetProcAddress (MaDLL, 'Nom de la procédure') ;


C'est tout. Quand vous voulez utiliser la procedure de la DLL appeler la procédure (ici ProcedureDLL) :
ProcedureDLL (38) ;

N'oubliez surtout pas de libérer la mémoire après utilisation de la facon suivante :
FreeLibrary (MaDLL) ;

Notes Supplémentaires
La fonction loadlibrary permet donc de charger une DLL mais surtout à partir d'une variable (type PChar) et d'un fichier du type DLL mais d'une extension quelconque.
De plus, si vous passez comme paramètre uniquement le nom de fichier, ce fichier doit impérativement se trouver dans le même répertoire que l'application qui l'utilise ou dans les répertoire system ou windows. Sinon, vous devez définir un chemin complet.

 Par Cyril LACABANNE
Adresse Mail : iccl@wanadoo.fr