Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL Virheilmoitus

Tontsa-san [31.07.2006 22:39:03]

#

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

Blaze [31.07.2006 23:41:52]

#

Hanki sdl.dll:n uusin versio.

Tontsa-san [01.08.2006 13:17:13]

#

Oon koittanut jo SDL.dll:n vaihtamista, mutta eipä auttanut mitään. Tulee sama errori kummallakin versiolla

Metabolix [01.08.2006 13:22:25]

#

"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/12809-sdl-kaksi-pikku-ongelmaa), ja siellä uusi SDL.DLL ilmeisesti auttoi.

Tontsa-san [01.08.2006 14:50:55]

#

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. :)

Metabolix [01.08.2006 16:20:00]

#

Juu, aina kun jotakin pitää ladata, se kannattaa ladata projektin itsensä sivuilta. Yleensä ne aidot sivut kyllä tunnistaa.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta