Bonjour,
J'ai un souci avec un appel de dll dynamique, et, je pense, un paramètre en std::string.

Voici mon code d'appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
typedef std::string (WINAPI *  DLL_MyFunction) (std::string xmlFlux); 
DLL_Function_Send pFuncSend; 
 
pFuncSend = (DLL_Function_Send) GetProcAddress( _hDll, "SendEvenement" ); 
if (pFuncSend == NULL) 
		{
			return;
		}
pFuncSend(MonContenu);
	}
Je rentre bien dans la fonction sans souci MAIS, pour un appel:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
std::string WINAPI SendEvenement(std::string xmlFlux)
{
std::cout << "SendEvenement" << std::endl; 
 
	...
}
Si je passe en entrée :
xmlFlux = "mon contenu xml"
(avec xmlFlux._MySize = 545 xmlFlux._MyRes = 559)
J'obtiens :
xmlFlux = "Send evenement" -> c'est le nom de la fonction !!!
(avec xmlFlux._MySize = 559 xmlFlux._MyRes = 1154654 ??) _Mysize et devenu _MyRes
A priori J'ai un décalage de mon pointeur... pourquoi ???

C'est la question...

Merci pour votre aide.