Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
742 connectés 

 


Dernière réponse
Sujet : [Delphi/VC++] Comment utiliser une DLL VC++ avec Delphi 6 ?
antp bon bhen tu fais bien d'upper :
 
exemple d'utilisation d'une DLL:
 
dans les declarations de la unit:

Code :
  1. TMaFonction = procedure(parametre1, parametre2, ...); stdcall;


 
puis le chargement et l'appel:

Code :
  1. var
  2.   dll: THandle;
  3.   func: TMaFonction;
  4. begin
  5.   ...
  6.   dll := LoadLibrary("monfichier.dll" );
  7.   try
  8.     if dll = 0 then
  9.       raise Exception.Create("Erreur au chargement dela DLL" );
  10.     @func := GetProcAddress(dll, 'NomFonction');
  11.     if not (@func = nil) then
  12.       func(parametre1, parametre2, ...)
  13.     else
  14.       RaiseLastOSError;
  15.   finally
  16.     FreeLibrary(dll);
  17.   end;
  18.   ...
  19. end;


 
evidemment faut adapter le nom de la fonction dans GetProcAdress, ainsi que les paramètres dans la déclaration
 
si tu fais très souvent appel à la DLL dans le programme c'est peut etre mieux de la charger au demarrage du prog et de la liberer a la fin, pour ne pas devoir a chaque fois charger/decharger.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antp bon bhen tu fais bien d'upper :
 
exemple d'utilisation d'une DLL:
 
dans les declarations de la unit:

Code :
  1. TMaFonction = procedure(parametre1, parametre2, ...); stdcall;


 
puis le chargement et l'appel:

Code :
  1. var
  2.   dll: THandle;
  3.   func: TMaFonction;
  4. begin
  5.   ...
  6.   dll := LoadLibrary("monfichier.dll" );
  7.   try
  8.     if dll = 0 then
  9.       raise Exception.Create("Erreur au chargement dela DLL" );
  10.     @func := GetProcAddress(dll, 'NomFonction');
  11.     if not (@func = nil) then
  12.       func(parametre1, parametre2, ...)
  13.     else
  14.       RaiseLastOSError;
  15.   finally
  16.     FreeLibrary(dll);
  17.   end;
  18.   ...
  19. end;


 
evidemment faut adapter le nom de la fonction dans GetProcAdress, ainsi que les paramètres dans la déclaration
 
si tu fais très souvent appel à la DLL dans le programme c'est peut etre mieux de la charger au demarrage du prog et de la liberer a la fin, pour ne pas devoir a chaque fois charger/decharger.

Lalorette up
antp oui y a moyen d'utiliser des DLL sous Delphi 6, y a rien de spécial à faire dans la création de la DLL.
Pour l'utiliser sous Delphi y a LoadLibrary pour charger la DLL, et GetProcAddress, comme en C++ (ce sont des fonctions de l'API Windows).
y doit y avoir des exemples un peu partout là dessus (désolé là j'ai pas le temps de chercher et j'ai pas de code source qui le fait à portée de main)
Lalorette (et faut il faire qq ch de spécial lors de la crétion de la DLL)

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR