Je suis un noob essayant d'apprendre C++ et allegro et suivait un tutoriel qui est la façon dont je suis arrivé avec ce code. Mon problème est sur la ligne:allegro/C++ ne peut pas convertir l'argument 3 de 'const char *' en 'char *'
"textout_centre_ex (écran, font1, Draw.c_str(), scrW/2, scrH/2, eBlue, -1);"
En ce qui concerne 'Draw.c_str()', j'obtiens Erreur: l'argument de type "const char *" est incompatible avec le paramètre de type "char *".
Si j'essaie de construire, j'obtiens l'erreur C2664: 'void textout_centre_ex (BITMAP *, FONT *, char *, int, int, int, int)': impossible de convertir l'argument 3 de 'const char *' en ' char * '"
Comment puis-je résoudre ce problème?
// Set variables
int counter = 0;
std::string Word = "SuperAwesomeTrivia";
std::string Draw = "";
FONT *font1 = load_font("font1.pcx", NULL, NULL);
while (!closeWindow){
// Update
Draw += Word[counter];
counter++;
if (counter > Word.length() - 1)
{
closeWindow = true;
}
// Draw
textout_centre_ex(screen, font1, Draw.c_str(), scrW/2, scrH/2, eBlue, -1);
if (!closeWindow)
rest(200);
else
rest(2000);
clear_bitmap(screen);
}
destroy_font(font1);
allegro_exit();
return 0;
Quelle implémentation d'Allegro utilisez-vous? Selon [documentation] (http://liballeg.org/stabledocs/en/alleg018.html#textout_centre_ex), le troisième argument est un 'const char *', pas un 'char *'. Et cela a du sens puisque la fonction ne doit pas modifier la chaîne. – Jack
J'utilise allegro 4.4.2 – billybrian
Je suppose que quelque chose ne va pas dans votre bibliothèque alors. – Jack