Problème de compilation

Signaler
Messages postés
5
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
2 juillet 2006
-
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
-
Bonsoir :)

J'ai un ptit probleme lorsque je compile mon projet sous Visual C++ 2005:

error C2440: '=' : cannot convert from 'const char *' to 'char *'

Malgrés mes recherches sous google, soit les reponses ne correspondait pas, soit jcomprenais rien à l'expliquation :s .

Merci d'avance de votre aide.

7 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
C'est simple. Tu essais de faire d'asigèr à un char * une valeur constante (LPCSTR(const char *)). Si c'est possible, change ta valeur const char * par un char * sinon essais de faire un cast.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Oups pardon. Petite érreure dans ma phrase:

Tu essais d'assignier à un char * une valeur constante (LPCSTR(const char *)).

Si tu ne sais pas ce qu'est un cast, voici un exemple:

test = (char*)test2;
___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Mais en général un cast de ce type c'est mauvais signe: ca veut dire que tu modifies unz zone mémoire qui ne devrait pas être modifiée

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
14
Je sais. C'est pour ça que je lui ai conseillé de changer sa variable pour un char* mais si il ne peut pas, c'est la que ça se complique. Mais c'est très rare qu'on ne puisse pas changer un valeur constante pour une valeur normal (à vrai dire, j'ai jamais vue ça). Une variable char * peut très bien passer pour une variable const char * mais le contraire est dangereux.

___________________________________________
Les plus grands esprits trouvent toujours une solution
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Ce n'est pas seulement le type du pointeur qu'il faut changer car il
doit correpondre avant tout au type de l'adresse qui lui est assignée,
ca ne doit pas etre l'adresse d'un char constant ou d'un tableau de
char constant.
Messages postés
5
Date d'inscription
samedi 14 juin 2003
Statut
Membre
Dernière intervention
2 juillet 2006

Merci beaucoup pour vos réponses, je testerais dès que possible. :)

Même si je pense que vos réponses sont exacte, j'attendrai de l'avoir fait pour les acceptées.

Merci encore et bon week end
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
8
char* buffer = new char[5012];
strcpy(buffer, ta_valeur_de_type_constante);

Ca peut toujours être utile

//Libère ma mémoire que j'ai utilisé
this->GetCurrentConversation()->FreeAllocatedMemory(REASON_UNUSED);