Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 4

SDL

12.12.2019, 20:31. Показов 791. Ответов 3
Метки c++, sdl (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста
пробую разобраться с SDL
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*This source code copyrighted by Lazy Foo' Productions (2004-2019)
and may not be redistributed without written permission.*/
 
//Using SDL and standard IO
#include <SDL.h>
#include <stdio.h>
 
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
 
int main(int argc, char* args[])
{
    //The window we'll be rendering to
    SDL_Window* window = NULL;
 
    //The surface contained by the window
    SDL_Surface* screenSurface = NULL;
 
    //Initialize SDL
    if (SDL_Init(SDL_INIT_VIDEO) < 0)
    {
        printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
    }
    else
    {
        //Create window
        window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
        if (window == NULL)
        {
            printf("Window could not be created! SDL_Error: %s\n", SDL_GetError());
        }
        else
        {
            //Get window surface
            screenSurface = SDL_GetWindowSurface(window);
 
            //Fill the surface white
            SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF));
 
            //Update the surface
            SDL_UpdateWindowSurface(window);
 
            //Wait two seconds
            SDL_Delay(2000);
        }
    }
 
    //Destroy window
    SDL_DestroyWindow(window);
 
    //Quit SDL subsystems
    SDL_Quit();
 
    return 0;
}
выдает ошибку 0xc000007b. В чем проблема?
Подскажите.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.12.2019, 20:31
Ответы с готовыми решениями:

Как вывести текст на экран, используя библиотеку SDL TTF для SDL 2?
В официальной доке как-то скомкано написано. При инициализации SDL TTF и при загрузке шрифта ошибок нет. Но текст на экране не...

C++ SDL
Всем привет! Работал я значи в SDL, а потом что-то нажалось ил не нажалось и вообщем теперь, при компиляции любого(работающего,...

SDL 2.0
Меня очень заинтересовала библиотека SDL. Расскажите пожалуйста, в чём её особенность, для каких целей она используется, какие у неё...

3
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
12.12.2019, 23:40
Цитата Сообщение от Slieder Посмотреть сообщение
В чем проблема?
C++
1
2
3
4
5
6
7
...
SDL_Surface* screenSurface = NULL;
...
screenSurface = SDL_GetWindowSurface(window);
...
SDL_FillRect(screenSurface, NULL, SDL_MapRGB(screenSurface->format, 0xFF, 0xFF, 0xFF));
...
если по какой то причине вызов SDL_GetWindowSurface(window); потерпит неудачу,
тогда screenSurface останется невалидным.

Returns the surface associated with the window, or NULL on failure;
(c) https://wiki.libsdl.org/SDL_GetWindowSurface
и тогда разыменовывание указателя спровоцирует UB

вот здесь ты сделал правильно:
Цитата Сообщение от Slieder Посмотреть сообщение
if (window == NULL)
тоже самое нужно было сделать для screenSurface
1
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 4
13.12.2019, 23:30  [ТС]
Вида
C++
1
2
if(screenSurface == NULL) 
printf("It is not working SDL_Error: %s\n", SDL_GetError());
?
0
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 4
14.12.2019, 16:43  [ТС]
спасибо, проблема была с несовместимостью
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2019, 16:43
Помогаю со студенческими работами здесь

Странность С++ и SDL
Здравствуйте уважаемые форумчане возникла непонятная ситуация вообщем писал на С++ классы и учил OpenGL и все вроде нормально как вдруг...

SDL and Qt Creator
Здравствуйте форумчане, у меня возникла проблема с подключением SDL к Qt кто подключал на Win7 можешь рассказать как?Я делал так: Кидал...

Некомпилируется SDL
Я уже замучался с этой либой несколько дней немогу запустить элементарный проект Делаю все по инструкции ...

Sdl, debian и с++
Добрый день. Уважаемые форумчане есть два вопроса, но ответ требует только один. 1) как в debian поставить SDL_image 2 версии? ...

инициализация SDL
подключил #include &quot;SDL.h&quot; - проверил, запустилось. добавил первую строку из статьи про работу сдл SDL_Init(SDL_INIT_VIDEO); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru