Ошибка при появлении SDL_CeateWindow при запуске программы - PullRequest
0 голосов
/ 17 мая 2019

Код ниже инициализирует окно SDL.Из-за ошибки я не могу найти SDL_CreateWindow() возвращает NULL.

int xwin_init(int w, int h)
{
    int r;
    r = SDL_Init(SDL_INIT_VIDEO);
    assert(win == NULL);
    win = SDL_CreateWindow("PRG Semester Project",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED, w, h,SDL_WINDOW_SHOWN);
    SDL_SetWindowTitle(win, "PRG SEM");
    SDL_Surface *surface = SDL_CreateRGBSurfaceFrom(icon_32x32_bits,32, 32, 24, 32*3, 0xff, 0xff00,0xff0000, 0x0000);
    SDL_SetWindowIcon(win, surface);
    SDL_FreeSurface(surface);
    return r;
}

Сообщение об ошибке выглядит следующим образом:

prgsem: xwin_sdl.c:58: xwin_init: Assertion win != NULL' failed`

1 Ответ

0 голосов
/ 17 мая 2019

Хотя я не могу сказать вам, в чем ваша проблема, по крайней мере, стоит проверить ошибки после инициализации видео и создания окна.Вы можете использовать SDL_GetError для этого.Через эту функцию будет доступно сообщение об ошибке, сообщенной через библиотеку SDL, и вы можете указать, когда ее вызывать, основываясь на кодах возврата других функций SDL, таких как SDL_Init в вашем примере.

...