Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Khodos

Frischling

  • »Khodos« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Kienz

  • Private Nachricht senden

1

07.09.2015, 21:34

Unbehandelte Ausnahme bei 0x71002a95 in 2onks2D.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00000000.

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.
Aktuelles Projekt: World of Kienz

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Khodos« (07.09.2015, 21:55)


dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.09.2015, 23:49

Wo bleibt der Debugger denn stehen, wenn dieser Fehler auftritt?
Eine Zugriffsverletzung an einer Adresse wie 0x00000004 suggeriert meist, dass du wo eine Methode auf einem Nullpointer aufrufst (z.B. per pointer->method(); die Methode versucht dann z.B. auf den Member des Objektes zuzugreifen, der 4 Byte vom Anfang des Objektes liegt).

Khodos

Frischling

  • »Khodos« ist der Autor dieses Themas

Beiträge: 45

Wohnort: Kienz

  • Private Nachricht senden

3

08.09.2015, 11:58

So, das Spiel lässt sich wieder starten. Ich hatte fie Font nicht richtig geladen, mit der die Statustexte gerendert wurden. Trotzdem gibts wieder Abstürze während des Spiels, des Debugger zeigt dabei auf

Quellcode

1
>2onks2D.exe!mainCRTStartup()  Zeile 371

in der Datei crtexe.c
Aktuelles Projekt: World of Kienz

Werbeanzeige