Les .dll en delphi .. ?

Les .dll en delphi .. ? - Delphi/Pascal - Programmation

Marsh Posté le 21-05-2003 à 14:40:20    

Bon voila je suis pas sur que ca serve a ca mais bon :)  
mon prog exe commence a devenir assez gros et puis jaimerai le diviser en plusieurs fichier .  
 
Puis meme , ca fait plus style , d'avoir des .dll en plus du simple executable !  
 
les .dll sont ils des forms (autre que le main form ) compilé a part ?  
 
si non , a koi servent les dll ?  
 
Voila , eclairer moi !

Reply

Marsh Posté le 21-05-2003 à 14:40:20   

Reply

Marsh Posté le 21-05-2003 à 14:58:31    

Tu mets ce que tu veux dans les DLL (un DLL c'est comme un EXE, sauf que ce n'est pas l'utilisateur qui le lance, mais un autre programme qui en appelle des fonctions) mais il faut savoir que le passage de paramètres entre l'EXE n'est pas aussi simple qu'entre parties d'un même EXE


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 21-05-2003 à 16:02:57    

Si tu as un exe et des dll, ça sera aussi gros en mémoire que l'exe qui contient tout. Les dll, ça a de l'intérêt seulement si tu veux pouvoir les échanger ou les partager entre plusieurs programmes qui sont actifs en même temps.

Reply

Marsh Posté le 21-05-2003 à 16:34:47    

ok merci

Reply

Marsh Posté le 21-05-2003 à 19:03:31    

_gtm_ a écrit :

Si tu as un exe et des dll, ça sera aussi gros en mémoire que l'exe qui contient tout.  


 
heu non, si tu ne charges tes DLL que quand tu en as besoin (dymaniquement donc) ça permet justement de réduire la place occupée en mémoire si des parties du programmes ne sont utilisées qu'occasionnellement.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 22-05-2003 à 14:55:48    

antp a écrit :


 
heu non, si tu ne charges tes DLL que quand tu en as besoin (dymaniquement donc) ça permet justement de réduire la place occupée en mémoire si des parties du programmes ne sont utilisées qu'occasionnellement.
 


 
Exactement moi je m en sers pour faire des "About Box" c est vachement pratique car t a plus besoin de le refaire une fois que ca marche comme il faut. Tous mes programmes l utilisent et ca commence a faire gagner du temps en development maintenant.
Bien entendu j espere pour voir bientot integre d autre fonctions  [:ddr555]  
 
@->--

Reply

Marsh Posté le 24-05-2003 à 13:41:11    

ya moyen de de lancer la dll avec un parametre ..  
(comme une procedure ? )  
 
pour ton aboutbox par exemple
 
on appellerai la dll avec comme parametre le nom du soft . c possible ca ?

Reply

Marsh Posté le 24-05-2003 à 14:24:53    

bah oui, les procédures/fonctions qui sont dans les DLL peuvent prendre des paramètres (heureusement :D)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 24-05-2003 à 20:07:14    

antp a écrit :

bah oui, les procédures/fonctions qui sont dans les DLL peuvent prendre des paramètres (heureusement :D)


 
suffit d'un hein, un bon gros pointeur  :whistle:


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Marsh Posté le 26-05-2003 à 13:21:27    

Comme par exemple le code suivant  

Code :
  1. Procedure TForm_Main.ActAboutExecute(Sender: TObject);
  2. var
  3.   Company, Project, Version : Pchar; ComSize, ProjSize, VerSize : Cardinal;
  4. Begin
  5.   ComSize := 25; ProjSize := 25; VerSize := 25;
  6.   Company := 'Napier University'; Project :=  ‘Honours Project’; Version := '1.4';
  7.   Hdle := loadlibrary('dll\abBox.dll');
  8.   if Hdle <> 0 then
  9.   begin
  10.     try
  11.       @DllFormCreate := GetProcAddress(Hdle, 'Create_Form');
  12.       if @DllFormCreate <> nil then
  13.         begin
  14.           DllFormCreate();
  15.         end;//if
  16.       @MyInfo := GetProcAddress(Hdle, 'DisplayInfo');
  17.       if @MyInfo <> nil then
  18.         begin
  19.           MyInfo(Company, Project, Version, ComSize, ProjSize, VerSize);
  20.         end;//if
  21.       @DllFormFree := GetProcAddress(Hdle, 'Free_Form');
  22.       if @DllFormFree <> nil then
  23.         begin
  24.           DllFormFree();
  25.         end;
  26.     finally
  27.       FreeLibrary(Hdle);
  28.     end;//try...finally
  29.   end//if Hdle...
  30.   else
  31.     MessageDlg(Err_Msg_Dll,mtError,[mbOk],0);
  32. End;


Dans mon aboutbox generique je transfere a la form contenue dans la DLL les infos a afficher. L utilisation des char et Pchar permettent d eviter d utiliser la Brlndmmdll.dll !
 
 [:ddr555] @->--
 
PS: copyright Krz Aramis  [:ddr555]


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 26-05-2003 à 13:21:27   

Reply

Marsh Posté le 26-05-2003 à 13:48:18    

Y a différents moyen d'utiliser le type string tout en ne devant pas distribuer ce DLL [:kiki]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-05-2003 à 15:27:52    

antp a écrit :

Y a différents moyen d'utiliser le type string tout en ne devant pas distribuer ce DLL [:kiki]  


 
Ca je savais pas !  [:ddr555] desole !
 
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 26-05-2003 à 15:31:43    

ça m'étonne que tu n'aies pas demandé comment [:figti]
 
http://www.codexterity.com/fastsharemem.htm


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-05-2003 à 11:44:47    

antp a écrit :

ça m'étonne que tu n'aies pas demandé comment [:figti]
 
http://www.codexterity.com/fastsharemem.htm


Tu triches antp ! dans l aide de Delphi il est deconseille d utilise les type string dans les DLL. Je pouvais pas savoir qu il y a des gars qui s amuse a corrige les defaults de Delphi.
D ailleurs j ai une question a ce sujet. Sachant que le TXPManifest a ete developpe par un independant et est mainteant inclus dans D7 le bug sur les DLL a t il aussi etait corrige (a.ka le les sources developpes ci dessus incluses dans D7 ?)
 
@->--
 
PS: Antp tricheur  :o


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 27-05-2003 à 12:03:43    

Non pour les DLL c'est toujours ce même vieux borlndmm.dll à ma connaissance.
Mais la version actuelle de FastShareMem (supportant NT/2K/XP) est récente, elle ne date que d'après la sortie de Delphi 7 ;) (septembre 2002)


Message édité par antp le 27-05-2003 à 12:04:33

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-05-2003 à 13:38:03    

antp a écrit :

Y a différents moyen d'utiliser le type string tout en ne devant pas distribuer ce DLL [:kiki]  


 
MAimaimai cetrezinteressan tout ca [:meganne]


---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed