Utilisation d'une dll C++
Bonjour,
j'ai externalis� certaines de mes fonctions dans une dll. Cette dll est ensuite utilis�e par un programme powerbuilder mais �galement par un site en .net.
Voici le prototype d'une des fonctions :
Code:
extern "C" __declspec(dllexport) int fx_decode_activation(const char *cle, char *code)
Elle permet de d�coder la cl� d'activation pass�e en param�tre et sa valeur est plac�e dans la variable "code".
Lors de la 1�re compilation pas de souci. Mais j'ai du apporter quelques modifications et depuis ca ne fonctionne plus. J'ai test� ma dll depuis un programme C++ et ca fonctionne correctement avec la d�claration suivante :
Code:
1 2
| typedef INT (__cdecl *SHDECODE) (const char *, char *);
m_pDecode = (SHDECODE)GetProcAddress(hRestaurationdll, _T("fx_decode_activation")); |
Donc pas de probl�me du c�t� de mon code. Mais ce qui est plus �tonnant, c'est que ca ne fonctione plus sous powerbuilder alors que je n'ai rien modifi� dans les d�clarations de mes fonctions. Lorsque j'ex�cute mon programme j'ai l'erreur suivante :
Citation:
Application terminated.
Error : Specified argument type differs from required argument type at runtime in DLL function gfx_decode_activation. (invalid stack pointer on return from function call) at line 27 in pfc_preopen event of object w_connection.
Ca donne l'impression que powerbuilder appelle la fonction en stdcall et que la pile est erron�e au retour. Mais je le r�p�te rien n'a �t� modifi� dans les d�finition et ca fonctionnait tr�s bien avant que je recompile ma dll.
Alors si quelqu'un a une id�e sur la question je suis preneur car ca fait depuis le d�but d'apr�s-midi que je cherche sans trouver !
Merci d'avance