Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
elch10
40 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 174
Завершенные тесты: 2
#1

Проинициализировать sdl раньше чем другие файлы - C++

24.10.2015, 14:23. Просмотров 207. Ответов 2
Метки нет (Все метки)

Есть проект из нескольких файлов. Этот проект использует библиотеку sdl. Есть главный файл, где проходит инициализация sdl и есть функция main. Еще есть два файла: один заголовочный ,другой cpp. В этих двух файлах определены классы, которые используют библиотеку sdl. Дело в том что классы используют библиотеку sdl, a sdl инициализируется в main( т.е.позже), в классе есть статические переменные, а так как sdl ещё не подключена эти переменные, ничем не инициализируются и получают NULL. Как это исправить?
Вот пример
C++
1
2
3
4
5
6
7
8
//main.cpp
#include"abc.h"
void initSdl(){}//инициализация sdl
int main()//тут цикл программы
{
initSdl();
//и так далее
}
C++
1
2
3
4
5
6
7
//abc.h
#include<SDL.h>
class some
{
private:
static SDL_Texture *texture;
}
C++
1
2
3
4
//abc.cpp
#include"abc.h"
SDL_Texture *some::texture=loadTexture();//не обращайте внимания, эта функция загружает текстуру
//здесь же вместо загрузки текстуры переменная texture становится равная NULL
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2015, 14:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проинициализировать sdl раньше чем другие файлы (C++):

Как "поймать" ошибку раньше, чем программа? - C++ Builder
try { File-&gt;LoadFromFile(*FileName); } catch(...) { ...

В чем ошибка(ini-файлы) - C++ Builder
Делаю сохранение настроек программы на форме нах 3 чекбокса, в первом ставлю галочку сохраняю в ини найл(если чекбокс активный то 1. Если...

Указатель скачет куда хочет и более поздний код выполняется раньше чем тот, который стоит выше - C++ WinAPI
Здравствуйте, подскажите, у меня по ходу выполнения программы в функции указатель скачет куда хочет и более поздний код выполняется раньше...

Конец файла обнаружен раньше, чем левая { скобка - C++
Помогите исправить программу так,чтобы она работала. ( Программа для перевода числа в письменный вид) #include &lt;iostream&gt; #include...

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

Header files и другие подключаемые файлы - C++
И так, господа, есть 3 файла : заголовочный (.h), файл реализации (.cpp) и управляющий (.cpp) Суть в том, что если я пропишу код файла...

2
Nick Alte
Эксперт С++
1646 / 1018 / 120
Регистрация: 27.09.2009
Сообщений: 1,945
Завершенные тесты: 1
25.10.2015, 10:47 #2
Можно было бы пошаманить с бубном над порядком статической инициализации, вынеся инициализацию SDL в конструктор глобального объекта, но надёжнее воспользоваться ленивой инициализацией (то есть, сделать так, чтобы some загружал свою текстуру при первом обращении к нему).
1
elch10
40 / 21 / 4
Регистрация: 27.04.2015
Сообщений: 174
Завершенные тесты: 2
25.10.2015, 14:42  [ТС] #3
Да ,спасибо! Я так и сделал, но когда я задал похожий вопрос на [другом форуме], то мне напиcали что я идиот и не знаю даже синтаксис c++ и т.д. Вот что мне ответили: "У тебя нету пока базы в программировании.
Разберись с языком C++ для начала.".
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2015, 14:42
Привет! Вот еще темы с ответами:

Как воспроизвести mp3 и другие звуковые файлы стандартными средствами Windows? - C++
...с помощью стандартных средств Windows.

Из одного файла считать целые числа, в другие файлы записать четные и нечетные числа - C++
Нужно с одного файла считать целые числа и в другие файлы записать четные и нечетные числа. Вот код, но почему-то не работает...и как...

проинициализировать строку в конструкторе - C++
Привет. Помогите, пожалуйста разобраться со строками. что с ними делать в конструкторе, функции, деструкторе. #include &quot;stdafx.h&quot; ...

[файлы]В чем ошибка? - C++
нужно чтобы в файле a.txt, читал через строчку строку #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;fstream.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru