impossible de convertir le paramètre 2 de 'const char *' en 'char *'

impossible de convertir le paramètre 2 de 'const char *' en 'char *' - C++ - Programmation

Marsh Posté le 09-07-2008 à 10:37:42    

Voilà j'ai ce message d'erreur : impossible de convertir le paramètre 2 de 'const char *' en 'char *'
 
Je n'arrive pas à le résoudre , voici mon code :  
 
   string answer;
   const char* answer2 = answer.data() ;
   const unsigned int bufSize = 255;
   
   //ret = GetSerialAnswer(port_.c_str(), "\n", answer);
   C843_GcsGetAnswer(ID, static_cast<const char*>( answer2), bufSize);
   if (ret != DEVICE_OK)

 
Pouvez vous m'aider svp...  :??:

Reply

Marsh Posté le 09-07-2008 à 10:37:42   

Reply

Marsh Posté le 09-07-2008 à 10:47:10    

bah le .data() ou le .c_str() c'est en lecture, pas pour écrire. Fais plutôt avec un vector:
 

Code :
  1. vector<char> buffer(255);
  2. getmachin(&buffer[0], buffer.size());


 
ou juste un avec un tableau.
 
 
 
Ou alors c'est juste que cette API est baisée et utilise des char* même en lecture ?

Reply

Marsh Posté le 09-07-2008 à 10:50:11    

Je ne comprend pas ce que je dois en faire....


Message édité par Unam07 le 09-07-2008 à 11:23:50
Reply

Marsh Posté le 09-07-2008 à 16:09:40    

ton truc là:
C843_GcsGetAnswer
çà a quel prototype et çà fait quoi ?
si çà modifie ta chaîne de caractères answer2  alors évidemment çà ne marchera pas puisque tu l'a déclaré avec un "const" pour spécifier qu'il n'est pas modifiable... (normal puisque string::data() retourne un const char*)
 
solution :

Code :
  1. const unsigned int bufSize = 255;
  2. char buffer[bufSize];
  3. C843_GcsGetAnswer(ID, buffer, bufSize);


 
(je ne vois pas ce qu'apporterais de s'emmerder avec un vector de char par rapport à un bon vieux tableau ?)


Message édité par Malkav le 09-07-2008 à 16:10:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed