Une adr pour l'appelle de ma DLL

Résolu
ada_azoul
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005
- 26 avril 2005 à 08:55
ada_azoul
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005
- 2 mai 2005 à 09:34
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

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

2 mai 2005 à 09:34
==================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
3
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
26 avril 2005 à 09:50
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.
0
ada_azoul
Messages postés
22
Date d'inscription
samedi 31 juillet 2004
Statut
Membre
Dernière intervention
8 juin 2005

27 avril 2005 à 08:53
Merci pour la réponse JMP77.

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

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

28 avril 2005 à 09:31
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
28 avril 2005 à 09:41
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.
0