Une adr pour l'appelle de ma DLL [Résolu]

Signaler
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005
-
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005
-
bonjour a tous



Jai besoin de mettre un chemin variant dans l'appelle de ma DLL


exple :
procedure DINDONC; external 'MADLL.DLL' index 1;


ce que je veux c'est a peux près ça, je ne cherche pas autre chose !


procedure DINDONC; external 'c:\monrepertoire\MADLL.DLL' index 1;


ou exactement ça

procedure DINDONC; external mon_adr+'\MADLL.DLL' index

l'adresse doit etre variable

merci pour tous

ADA

5 réponses

Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005

==================Réponse


ça Marche maintenant , excuse moi si j'ai porté qlq changement
Merci beaucoup pour votre aimable courtoisie
et ton précieux aide


voici ma DLL opérationnelle avec changment de chemin dynamique
et ceci grace à JMP77

que les personnes qui ont en besoin l'exploite au nom de JMP77





//=====================
procedure TForm1.dynamiq_DLL(ma_som : Currency; var retour_som : Currency);


type
TDincDonc = Procedure (ma_som : Currency; var retour_som : Currency);


var
DllInstance : THandle;
DincDonc : TDincDonc;


begin
{Ouverture de la dll}
DllInstance := LoadLibrary(PChar(MonAdr + '\MaDll.dll'));


Try


If DllInstance = 0 then ShowMessage('Impossible de charger la dll "MaDll.dll"') {Impossible de charger la dll}
else
begin
@DincDonc := GetProcAddress(DllInstance,'TDincDonc');


If not(@DincDonc = nil) then
begin
{Lancement de la procedure}
DincDonc(MaSom,RetourSom);
end
else ShowMessage('Impossible de trouver la procédure "DincDonc"'); {Impossible de trouver la procédure}
end;
Finally
FreeLibrary(DllInstance);
end;
end;


_________________________________


appelle de la DLL


dynamiq_DLL(Xma_som ,xretour_som);



ADA
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Hello,



Fais un chargement dynamique de ta dll comme ceci :


procedure TFormPrinc.Courbes1Click(Sender: TObject);



type

TDincDonc = Procedure;



var

DllInstance : THandle;

DincDonc : TDincDonc;



begin

{Ouverture de la dll}

DllInstance := LoadLibrary(PChar(MonAdr + '\MaDll.dll'));



Try



If DllInstance = 0 then
ShowMessage('Impossible de charger la dll "MaDll.dll"') {Impossible de
charger la dll}

else

begin

@TDincDonc := GetProcAddress(DllInstance,'TDincDonc');



If not(@TDincDonc = nil) then

begin

{Lancement de la procedure}

TDincDonc;

end

else
ShowMessage('Impossible de trouver la procédure "TDincDonc"');
{Impossible de trouver la procédure}

end;

Finally

FreeLibrary(DllInstance);

end;

end;


Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005

Merci pour la réponse JMP77.

je vais essayer de l'adapter , je vous répondrais des que possible
salutation

ADA
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005

j'ai oublier de dire que j'ai des parametres à transmettre
et recevoir en retour
j'ai pas pu etablir un lien , ça ne marche pas


{Lancement de la procedure}
TDincDonc (ma_som currency;var retour_som:currency);
end





merci comme meme

ADA
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Hello,



Voici comment faire :



procedure TForm1.Button1Click(Sender: TObject);



type

TDincDonc Procedure (
ma_som : Currency; var retour_som : Currency);





var

DllInstance : THandle;

DincDonc : TDincDonc;



begin

{Ouverture de la dll}

DllInstance := LoadLibrary(PChar(MonAdr + '\MaDll.dll'));



Try



If DllInstance = 0 then
ShowMessage('Impossible de charger la dll "MaDll.dll"') {Impossible de
charger la dll}

else

begin

@TDincDonc := GetProcAddress(DllInstance,'TDincDonc');



If not(@TDincDonc = nil) then

begin

{Lancement de la procedure}

DincDonc(TaVarMaSom,TaVarRetourSom);

end

else
ShowMessage('Impossible de trouver la procédure "DincDonc"');
{Impossible de trouver la procédure}

end;

Finally

FreeLibrary(DllInstance);

end;

end

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.