UTILISATION DE DLL EN DELPHI

dernière mise à jour le mardi 01 février 2000

 

 

L'importation des routines d'une DLL:

Pour utiliser une routine (fonction ou procédure) contenue dans une DLL, il faut indiquer à notre programme

L'importation se fait par une déclaration qui peut se situer dans la partie interface ou dans la partie implementation.

 

Importation par nom

Pour importer notre fonction 'somme' que nous avons créée dans le précédent chapitre , il faudra, dans notre programme faire la déclaration suivante:

Function somme(i,j:integer):integer; stdcall; external 'pMadll.dll';

indique que la fonction somme (attention les minuscules / majuscules comptent) contenue dans le fichier pMadll.dll sera utilisable dans notre programme sous le nom "somme".

 

Si vous voulez utiliser un autre nom que le nom de la routine contenu dans la dll, il faut utiliser "name" :

Function total(i,j:integer):integer; stdcall; external 'pMadll.dll' name 'somme';

indique que la fonction somme (attention les minuscules / majuscules comptent) contenue dans le fichier pMadll.dll sera utilisable dans notre programme sous le nom "total".

 

Importation par index

Function total(i,j:integer):integer; stdcall; external 'pMadll.dll' index 10;

indique que la fonction référencée par l'index 10 contenue dans pMadll.dll sera utilisable sous le nom "total".

 

Pour avoir plus d'explications sur stdcall cliquez ici

Pour télécharger un petit projet qui utilise la DLL que nous avons créée précédemment cliquez ici

 


(ajout 29/01/2000)

Chargement dynamique d'une DLL

Une autre solution pour utiliser une DLL est de la charger en mémoire uniquement lorsque l'on en a besoin et de la libérer ensuite. (meilleure optimisation de la mémoire).

Exemple de code pour le chargement :

procedure TForm1.ButtonChargerClick(Sender: TObject);
begin
  NomDll:='pMadll.dll';
  hDLL:=LoadLibrary(PChar(NomDll)); // chargement de la dll
  if hDLL=0 then ShowMessage('erreur au chargement de la DLL');
  somme:=GetProcAddress(hDLL,'somme');  // affectation de la fonction somme de la dll à la fonction somme de notre programme
end;

 

Vous pouvez alors utiliser la fonction "somme" comme bon vous semble.

A la fin de son utilisation, vous déchargerez la dll

en faisant

FreeLibrary(hDLL);//libération. La Dll n'est plus utilisable

Pour télécharger un petit projet qui utilise dynamiquement la DLL que nous avons créée précédemment cliquez ici

 

 

Retour au sommaire. Chapitre précédent.

 

Retour à la page Delphi