SDL: probleme mit SDL_Image + SDL_Mixer
-
moin,
ich hab ein problem, wenn ich beide libs zusammen benutze.
SDL_Image version 1.2.3
SDL_Mixer version 1.2.5
kompiliert unter winxp mit mingw g++ 3.2.3.starte ich das programm kriege ich die fehlermeldung:
"Die Anwendung konnte nicht richtig initialisiert werden
(0xc00000005)."
die meldung kommt bevor irgend eine zeile im programm
ausgefuehrt wird.kommentiere ich einen der beiden teile aus (also entweder
den image oder den mixer teil) laeuft alles...woran koennte das liegen?
ich verstehs nich....#include <SDL/SDL.h> #include <SDL/SDL_Image.h> #include <SDL/SDL_Mixer.h> #include <cstdlib> #include <iostream> using namespace std; int main(int argc,char* argv[]) { cerr << "SDL init..."; if ( SDL_Init(SDL_INIT_AUDIO | SDL_INIT_VIDEO) == -1 ) { cerr << "Can't init SDL: " << SDL_GetError() << endl; exit(1); } cerr << "ok" << endl; atexit(SDL_Quit); // Mixer-Teil cerr << "Init audio..."; if ( Mix_OpenAudio(22050,MIX_DEFAULT_FORMAT,2,1024) == -1 ) { cerr << "Can't init Audio: " << Mix_GetError() << endl; exit(1); } cerr << "ok" << endl; atexit(Mix_CloseAudio); Mix_Music* music = Mix_LoadMUS("z1-dungeon1.mid"); if ( music == 0 ) { cerr << "Can't load music file: " << Mix_GetError() << endl; exit(1); } if ( Mix_PlayMusic(music,-1) == -1 ) { cerr << "Can't play music: " << Mix_GetError() << endl; exit(1); } // Ende Mixer // Image-Teil cerr << "Init screen..."; SDL_Surface* screen = SDL_SetVideoMode(800,600,16,SDL_HWSURFACE); if ( screen == 0 ) { cerr << "Can't set video mode: " << SDL_GetError() << endl; exit(1); } cerr << "ok" << endl; SDL_Surface* image = IMG_Load("tuxjpg.jpg"); //SDL_LoadBMP("tuxbmp.bmp"); if ( image == 0 ) { cerr << "Can't load image: " << IMG_GetError() << endl; exit(1); } SDL_Rect dest; dest.x=100; dest.y=100; dest.h=image->h; dest.w=image->w; SDL_BlitSurface(image,0,screen,&dest); SDL_FreeSurface(image); SDL_UpdateRect(screen,0,0,0,0); // ende Image SDL_Event event; bool done = false; while ( !done ) { while ( SDL_PollEvent(&event) ) { switch ( event.type ) { case SDL_QUIT: done=true; break; } } } return 0; }