Erreur de conversion

Signaler
Messages postés
7
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
30 juin 2006
-
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
-
Bonjour,

J'essaie de faire un programme qui utilise gSoap pour communiqué, j'ia donc incorporé mes librairies, mais j'ai cette erreur lorsque je compile.
Ca doit etre tres con, mais j'arriv pas a la supprimé. (j'fait du C++ sous Visual Studio 2005).

>5809 :    soap_element_href(soap, tag, id, "href" + n, soap->href + n);
...

Error    3    error C2664: 'soap_element_href' : cannot convert parameter 4 from 'System::String ^' to 'const char *'    d:\Projets - En Cours\InDesign Server\SawPit\SawPit\stdsoap2.cpp    5809

5 réponses

Messages postés
116
Date d'inscription
jeudi 22 juillet 2004
Statut
Membre
Dernière intervention
14 juin 2012

D'apres le msg d'erreur, c'est l'argument
"href" + n   qui passe pas;

Est-tu sûr de ton opérateur + ?
il faut pas une variable = strCat("href",n.toString()); à la place??

Sinon desole pour ces mauvais conseils...
GL
Messages postés
7
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
30 juin 2006

Merci de ta reponse, mais ça change pas ;(, j'ai mit ça :

soap_element_href(soap, tag, id, strcat("href", n.ToString()) , soap->href + n);


et j'obtient ça :


Error    3    error C2664: 'strcat' : cannot convert parameter 2 from
'System::String ^' to 'const char *'    d:\Projets - En
Cours\SawPit\stdsoap2.cpp    5813
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
On dirait que tu essais de passer en argument à ta fonction une classe et que ta fonction ne prend que des const char *. Si oui, l'erreur est bien la.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Non, il utilise du C++.NET... Il y a surement une fonction qui permet de créer une LPCTSTR à partir d'une System::String^ dans les méthodes statiques de la classe System::String.
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
9
Tiens, en cherchant un peu, je t'ai trouvé ça (merci Google )

LPCTSTRConvertStringToLPCTSTR(String* sString)
{
LPCTSTR lpsConverted;
lpsConverted = static_cast<LPCTSTR>(const_cast<void*>(static_cast<const
void*>(System::Runtime::InteropServices::Marshal::StringToHGlobalAuto(sStrin
g))));
return lpsConverted;
}