Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL, C++] Błąd: "Unhandled exception at (...) in (...)"

Ostatnio zmodyfikowano 2011-07-19 22:55
Autor Wiadomość
Fletcher
Temat założony przez niniejszego użytkownika
[SDL, C++] Błąd: "Unhandled exception at (...) in (...)"
» 2011-07-19 22:26:45
Unhandled exception at 0x012b150e in SDLTEST.exe: 0xC0000005: Access violation reading location 0x00000004.

Po dodanie tej linijki wyskakuje mi błąd powyżej.
color = SDL_MapRGB( bufor->format, 0, 0, 255 );
P-36297
akwes
» 2011-07-19 22:41:29
Zmienna color na pewno istnieje?
bufor został stworzony przez konstruktor?
P-36299
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-07-19 22:42:20
C/C++
#include <SDL.h>
#include <iostream>
#include "SDL_ttf.h"
#include "stdio.h"
#include <string.h>
using namespace std;


SDL_Surface * screen = NULL;
SDL_Surface * bufor = NULL;
SDL_Event event;
Uint32 color = 0;

int main( int argc, char * args[] )
{
    SDL_Init( SDL_INIT_EVERYTHING );
    screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE | SDL_DOUBLEBUF );
    //color = SDL_MapRGB(bufor->format, 0, 0, 255);
    //SDL_SetColorKey(bufor,SDL_RLEACCEL,color);
    //######################################
    bool exit = false;
    //######################################
    while( !exit )
    {
        while( SDL_PollEvent( & event ) )
        {
            if( event.type == SDL_QUIT )
            {
                exit = true;
            }
        }
       
        SDL_Flip( screen );
    }
   
    SDL_Quit();
    return 0;
}

P-36300
akwes
» 2011-07-19 22:47:14
bufor jest cały czas NULL. Musisz w nim stworzyć obiekt.

Coś w deseń

C/C++
SDL_Surface * bufor = new SDL_Surface( /*argumenty*/ );

NULL oznacza zerowy adres w pamięci. Czyli nie ma tam żadnego obiektu a Ty chcesz z tego zerowego adresu coś wyciągać.
P-36301
Fletcher
Temat założony przez niniejszego użytkownika
» 2011-07-19 22:55:48
Dzięki za pomoc, z tym NULL'em to wtopa ;(, ale na przyszłość będę wiedział żeby zwracać uwagi na takie rzeczy. A dla osób które kiedyś natkną się na podobny problem polecam "SDL_CreateRGBSurface" ;D
P-36302
« 1 »
  Strona 1 z 1