Hallo Leute!
Ich hab jetzt angefangen mir die SDL 2 anzugucken und damit kein kleines Spiel zu programmieren. Das ganze läuft auch schon soweit, aber seit heute früh stürzt das Spiel in unregelmäßigen Abständen ab, mal gleich nach Programmstart, mal nach 30 Sekunden und manchmal auch gar nicht. Wenns es abstürzt kommen Meldungen wie
|
Quellcode
|
1
|
Unbehandelte Ausnahme bei 0x6c7b52e7 in SDL2test.exe: 0xC0000005: Zugriffsverletzung beim Schreiben an Position 0xf5ebf5f4.
|
oder
|
Quellcode
|
1
|
Unbehandelte Ausnahme bei 0x6c7b543d in SDL2test.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000004.
|
Das Problem hatte ich schonmal, damals lags dran, dass ich den Speicher der Surfaces nicht wieder freigegeben habe, was ich diesesmal (soweit ich nichts übersehen hab) alles gemacht habe.
Nach dem Abbruch spring Visual Studio meistens in folgende Funktion:
|
C-/C++-Quelltext
|
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
|
bool CTexture::loadfromrenderedtext (string texturetext, SDL_Color textcolor, SDL_Renderer* renderer, TTF_Font *font)
{
free ();
SDL_Surface *textsurface = TTF_RenderText_Solid (font, texturetext.c_str(), textcolor);
if (textsurface == NULL)
{
cout << "Textsurface konnte nicht erstellt werden! Error: " << TTF_GetError() << endl;
}
else
{
texture = SDL_CreateTextureFromSurface (renderer, textsurface);
if (texture == NULL)
{
cout << "Text-Texture konnte nicht erstellt werden! Error: " << TTF_GetError() << endl;
}
else
{
w = textsurface->w;
h = textsurface->h;
wframe = w;
hframe = h;
}
SDL_FreeSurface (textsurface);
}
return texture != NULL;
}
|
Diese Funktion wird nur an folgender Stelle aufgerufen:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
void updatetext ()
{
k.clear();
k = to_string (killsgesamt);
bodycount.loadfromrenderedtext (k, textcolor, renderer, font);
z.clear();
z = to_string (zeitgesamt);
zeit2.loadfromrenderedtext (z, textcolor, renderer, font);
kills.render (10, 10, renderer);
bodycount.render (80, 10, renderer);
zeit.render (10, 40, renderer);
zeit2.render (80, 40, renderer);
}
|
Bin echt am verzweifeln, probier hier schon den ganzen Tag rum und es kommen nur noch mehr Fehler dazu.
Hat jemand eine Idee, wie man die Probleme beheben kann?
MfG Khodos
Edit: 2. Problem wurde behoben (hab das Projekt neu erstellt, dann gingen die includes wieder), ABER das Programm startet überhaupt nicht mehr und stürzt sofort ab.