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.