Chtite question sur les DLLs - C++ - Programmation
Marsh Posté le 17-07-2002 à 10:04:58
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.
Marsh Posté le 17-07-2002 à 10:06:37
T'as fonction accepte bien un char * comme argument? (on sait jamais hein )
Marsh Posté le 17-07-2002 à 10:08:21
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
Marsh Posté le 17-07-2002 à 10:11:11
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 |
On sait jamais
Marsh Posté le 17-07-2002 à 10:13:01
et plutôt que d'essayer de se moquer, t'aurais pas une rmq constructive à donner pas hasard ?
Marsh Posté le 17-07-2002 à 10:17:00
Il me semble qu'il y a eu le meme pb sur un autre topic. Fait une recherche.
Marsh Posté le 17-07-2002 à 10:25:33
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 ...
Marsh Posté le 17-07-2002 à 10:26:11
freewol a écrit a écrit : et plutôt que d'essayer de se moquer, t'aurais pas une rmq constructive à donner pas hasard ? |
Je cherche, je cherche, mais faut tjrs commencer par l'explication la plus simple.
Marsh Posté le 17-07-2002 à 10:29:46
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).
Marsh Posté le 17-07-2002 à 10:37:16
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
Marsh Posté le 17-07-2002 à 10:42:34
J'atais pas si loin que ça en fait
Marsh Posté le 17-07-2002 à 10:04:02
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 :
Ca ça marche, mais ça :
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.