bonjour à tous,
Me voici avec un problème que je n'arrive pas a solutionner même en farfouillant dans le forum :
Je cherche à executer une fonction dans une DLL C++ a partir de Delphi.![]()
j'ai d'abord crée une DLL en Delphi et je l'ai appelé de puis mon prog, pour le debug, et ça marche nickel.![]()
ensuite je mets la DLL que l'on me livre et la, impossible de me connecter au fonctions de la DLL, la DLL se charge bien mais l'assignation des fonction par GetProcAdress ne marche pas.![]()
a force de chercher, j'ai fait un Tdump et voilà le résultat : bizarre.....
(j'ai mis les trois point pour pas vous embéter avec toutes les fonctions exporter)
le nom des fonction que je cherche sont bien resTH et conTH mais la c'est bizarre tous ces caractères avant et aprés non
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Display of File toto_h.dll ... EXPORT ord:0004='?conTH@@YAHPAD000PAH00000@Z' ... EXPORT ord:0007='?resTH@@YAHPAD000PAH00000@Z'![]()
dans "dependency Walker " il faut que je clique sur "undecorate C++ fonction"
pour voir alors :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int conTH(char *,char *,char *,char *,int *,char *,char *,char *,char *,char *)
ça ca correspond bien à ce que je veux ..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 int resTH(char *,char *,char *,char *,int *,char *,char *,char *,char *,char *)
j'ai l'impression que mon problème vient de là . qu'en pensez vous ???
Pour plus d'info voici le code de mon prog :
et l'association via GetProcAdress :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ResTHInDLL: function(ID, DP, OPR: Pchar; DHr: PChar;out CodeRetour: PInteger;out Quad: Pchar; Host, User, Pass, Db: Pchar): Integer; cdecl;
la déclaration de la fonction dans la DLL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ResTHinDLL := GetProcAddress(hDLLHandle, ResTH); if not assigned(ResTHinDLL) then begin mess := 'resTH introuvable dans la DLL'; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 __declspec(dllimport) int resTH(char *, char *,char *,char *,int *,char *,char *,char *,char *,char *);
Partager