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

  FORUM HardWare.fr
  Programmation
  C++

  Chtite question sur les DLLs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chtite question sur les DLLs

n°177594
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:04:02  profilanswer
 

Voila c ptet tout con mais comme j'y connais pas grand chose ...
Donc c un appel dynamique de la dll avec un GetProcAddress, tout fonctionne au poil ... sauf quand ma fonction a comme paramètre un (char *) ...
Je m'explique :

Code :
  1. typedef BYTE * (WINAPI * FnGBI) (void);
  2. FnGBI GetBMPImage = NULL;
  3. ...
  4. GetBMPImage = (FnGBI) GetProcAddress (hDll, "ExpGetBMPImage" );


Ca ça marche, mais ça :  

Code :
  1. typedef BYTE * (WINAPI * FnGBI) (char *);
  2. FnGBI GetBMPImage = NULL;
  3. ...
  4. GetBMPImage = (FnGBI) GetProcAddress (hDll, "ExpGetBMPImage" );


Ca marche pas !
Et ce même si le corps de la fonction est le même ! Ca me fait une erreur de debug avec un truc du genre la convention d'appel de la fonction est mauvaise ou un truc comme ça. La fenêtre d'erreur ressemble à celles qu'on a avec un mauvaise utilisation d'un new ou delete.
 
Merci d'avance.

mood
Publicité
Posté le 17-07-2002 à 10:04:02  profilanswer
 

n°177596
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:04:58  profilanswer
 

ah oui je me rends compte que j'ai pas été assez clair :
l'erreur se produit au moment de l'appel de ma fonction.

n°177598
LetoII
Le dormeur doit se réveiller
Posté le 17-07-2002 à 10:06:37  profilanswer
 

T'as fonction accepte bien un char * comme argument? (on sait jamais hein :D)


---------------
Le Tyran
n°177600
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:08:21  profilanswer
 

effectivement, j'ai oublié de dire qu'à chaque fois j'adapte ma fonction dans ma DLL pour correspondre au typedef ... Sinon c sur que ça expliquerait mieux pkoi ça marche pas :D


Message édité par freewol le 17-07-2002 à 10:08:34
n°177602
LetoII
Le dormeur doit se réveiller
Posté le 17-07-2002 à 10:11:11  profilanswer
 

freewol a écrit a écrit :

effectivement, j'ai oublié de dire qu'à chaque fois j'adapte ma fonction dans ma DLL pour correspondre au typedef ... Sinon c sur que ça expliquerait mieux pkoi ça marche pas :D




 
On sait jamais  :ange:


---------------
Le Tyran
n°177604
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:13:01  profilanswer
 

et plutôt que d'essayer de se moquer, t'aurais pas une rmq constructive à donner pas hasard ? :D

n°177607
godbout
Génial.
Posté le 17-07-2002 à 10:17:00  profilanswer
 

Il me semble qu'il y a eu le meme pb sur un autre topic. Fait une recherche. ;)


---------------
Super.
n°177616
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:25:33  profilanswer
 

j'ai trouvé un post de darkoli qui avait un peu le même problème, mais il conclu en disant qu'il a trouvé la solution sans la donner alors ...

n°177617
LetoII
Le dormeur doit se réveiller
Posté le 17-07-2002 à 10:26:11  profilanswer
 

freewol a écrit a écrit :

et plutôt que d'essayer de se moquer, t'aurais pas une rmq constructive à donner pas hasard ? :D




 
Je cherche, je cherche, mais faut tjrs commencer par l'explication la plus simple.


---------------
Le Tyran
n°177619
youdontcar​e
Posté le 17-07-2002 à 10:29:46  profilanswer
 

sûrement un problème de nom décoré. un FnGBI(void) a un nom exporté FnGBI, FnGBI(char*) a un nom exporté FnGBI@c (par exemple).
 
tu prends dependency walker, tu regardes le nom de ta fonction exporté. tu fais également gaffe aux conventions d'appel (stdcall si je me souviens bien).

mood
Publicité
Posté le 17-07-2002 à 10:29:46  profilanswer
 

n°177625
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:37:16  profilanswer
 

ahahahah ... j'ai honte pour moi.
En fait oui bon le nom exporté est bien le bon puisque GetProcAddresse marche. Mais le truc c que j'avais vérifié que j'avais bien un WINAPI dans mon prog, mais pas dans ma DLL, ou j'ai du le virer malencontreusement ... Résultat, je l'ai rajouté et ça marche au poil ...  
Merci bcp :jap:

n°177631
LetoII
Le dormeur doit se réveiller
Posté le 17-07-2002 à 10:42:34  profilanswer
 

J'atais pas si loin que ça en fait :D


---------------
Le Tyran
n°177636
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 10:51:52  profilanswer
 

:sweat:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Chtite question sur les DLLs

 

Sujets relatifs
VC++ Question de newbie sur le string[php] Question sur les sessions
[3D] Une question sur les cube mapsquestion sur IPv6
[java + C/C++] Question existentielle ..................[VB(A)] petite question
PHP question a propo des refresh[VC++ MFC] Access - Question sur la gestion d'un champ OLE
Question a propo des fichiers en php[VBA]question objet
Plus de sujets relatifs à : Chtite question sur les DLLs


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