Я не хочу учиться C++ и allegro и следовал учебному пособию, так как я придумал этот код. Моя проблема находится на линии:allegro/C++ не может преобразовать аргумент 3 из 'const char *' в 'char *'
"textout_centre_ex (screen, font1, Draw.c_str(), scrW/2, scrH/2, eBlue, -1);"
Когда дело доходит до 'Draw.c_str()' Я получаю Error: аргумент типа "const char *" несовместим с параметром типа "char *".
Если я пытаюсь построить, я получаю сообщение об ошибке C2664: 'void textout_centre_ex (BITMAP *, FONT *, char *, int, int, int, int)': не может преобразовать аргумент 3 из 'const char *' в ' char * '"
Как это разрешить?
// 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;
Какую реализацию Allegro вы используете? Согласно [документации] (http://liballeg.org/stabledocs/en/alleg018.html#textout_centre_ex), третий аргумент - это 'const char *', а не 'char *'. И это имеет смысл, поскольку функция не должна изменять строку. – Jack
Я использую allegro 4.4.2 – billybrian
Я думаю, что что-то не так с вашей библиотекой. – Jack