Я нуб, пытающийся изучить С++ и аллегро, и следил за учебником, и именно так я придумал этот код. Моя проблема находится в строке:
"textout_centre_ex(экран, font1, Draw.c_str(), scrW/2, scrH/2, eBlue, -1);"
Когда дело доходит до «Draw.c_str()», я получаю сообщение об ошибке: аргумент типа «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;
const char*
, а неchar*
. И это имеет смысл, поскольку функция не должна изменять строку. - person Jack   schedule 30.12.2016AL_CONST
какconst
только при компиляции с помощью GCC. (определение, не относящееся к GCC, GCC-определение) - person emlai   schedule 30.12.2016const_cast
- это то, что нужно, но обоснование AL_CONST кажется довольно устаревшим, поскольку оно относится к компилятору, который не поддерживаетconst
, в настоящее время их не должно быть много. Мы не знаем компилятор OP, но я думаю, было бы безопасно скомпилировать Allegro с помощьюAL_CONST const
- person Jack   schedule 30.12.2016