Noniin, jos joku osaisi auttaa. Olen opetellut tässä SDL:n käyttöä noiden oppaiden avulla, mutta kun koitan käyttää sdl_mixeriä niin juttu iskee virhettä. Tämä tapahtuu siis kun olen buildannut ohjelman, ja yritän avata sitä.
Tässä koodi:
#include <SDL/SDL.h> #include <SDL/SDL_mixer.h> #pragma comment(lib, "SDLmain.lib") #pragma comment(lib, "SDL.lib") #pragma comment(lib, "SDL_mixer.lib") void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int x, int y); int main(int argc, char *argv[]) { if( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "SDL:n alustus ei onnistunut: %s", SDL_GetError()); return 0; } if(Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024)==-1) { fprintf(stderr, "SDL_Mixerin alustus ei onnistunut."); } Mix_Chunk *aani; aani=Mix_LoadWAV_RW(SDL_RWFromFile("vasen.wav", "rb"), 0); if(Mix_PlayChannel(0, aani, 1)==-1) fprintf(stderr, "Virhe : %s ", Mix_GetError()); // virhe // Ikkunan nimi SDL_WM_SetCaption("Testipeli", NULL); SDL_Surface * naytto; // Pelin pohja SDL_Surface * kuva; // Tontsa kuva SDL_Surface * tausta; naytto = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_FULLSCREEN|SDL_DOUBLEBUF); // Alustetaan ruutu kuva = SDL_LoadBMP("loota.bmp"); // Ladataan kuva tausta = SDL_LoadBMP("tausta.bmp"); Uint8* nappi; // näppäimet SDL_Event tapahtuma; // tapahtumat int napit, x, y; // Muuttujat int lootax=470; int lootay=690; bool pois=false; while (pois == false) { SDL_PollEvent(&tapahtuma); if ( tapahtuma.type == SDL_KEYDOWN ) { if ( tapahtuma.key.keysym.sym == SDLK_ESCAPE ) { pois = true; } } nappi = SDL_GetKeyState(NULL); if ( nappi[SDLK_LEFT] ) { lootax -= 4; } if ( nappi[SDLK_RIGHT] ) { lootax += 4; } PiirraKuva(tausta, naytto, 0, 0); PiirraKuva(kuva, naytto, lootax, lootay); SDL_Flip(naytto); } Mix_FreeChunk(aani); aani = NULL; SDL_FreeSurface(kuva); SDL_Quit(); return 0; } void PiirraKuva(SDL_Surface *kuva, SDL_Surface *naytto, int x, int y) { SDL_Rect alue; alue.x = x; alue.y = y; SDL_BlitSurface(kuva, NULL, naytto, &alue); }
Kuva virheilmoituksesta:
http://tontsa.arkku.net/dl/virhe.png
Hanki sdl.dll:n uusin versio.
Oon koittanut jo SDL.dll:n vaihtamista, mutta eipä auttanut mitään. Tulee sama errori kummallakin versiolla
"Kummallakin", mitä se mahtaa tarkoittaa? Tällä hetkellä uusin on SDL:n sivuilta saatava 1.2.11. Samainen ongelma oli toisessakin keskustelussa (https://www.ohjelmointiputka.net/keskustelu/
Kumma kyllä uusimman dll tiedoston hakeminen auttoi. Hain kyllä netistä jonkun mutta se taisikin sitten olla vanha.
Etsin kyllä tietoja tuolta toisestakin aiheesta, mutta
kiitos avusta. :)
Juu, aina kun jotakin pitää ladata, se kannattaa ladata projektin itsensä sivuilta. Yleensä ne aidot sivut kyllä tunnistaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.