Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL: ohjelmoinnin aloittaminen

Azure [26.12.2005 00:22:50]

#

Okei, aloitettaan tää nyt alusta. Kun aloitetaan SDL ohjelmointi Dev-Cpp:llä pitää olla koneessa tää SDL Dev-Pak asennettuna ja se on nyt asennettu aikoja sitten.

Ja kun aloitetaan koodaaminen täytyy koodi aloittaa näin sisällyttämällä SDL otsikkotiedosto:

#include <SDL/SDL.h>

Ja seuraavaksi syntyykin kysymys "miten tämä koodi hoidetaan Dev-c++:lla, eli miten tätä täytyy muttaa (gcc:llä parametri -lSDL ajaa saman asian?": Eli pitääkö tämä koodi >

#pragma comment(lib, "SDLmain.lib")
#pragma comment(lib, "SDL.lib")

muuttaa tällaiseksi, vai mitä sille pitää tehdä? >

#pragma comment(lib, "ISDLmain.lib")
#pragma comment(lib, "ISDL.lib")

Seuraava ongelma on tässä int main jutussa eli kääntäjä valittaa ainakin minulla että:

In function int SDL_main(int, char**)

Oppaassa oli tämä koodi siihen joka ei toimi mulla:

int main(int argc, char *argv[]) {

Ja loput oppaan koodista onkin tätä joista kääntäjäni valittaa kaikista näistä "SDL Init,SDL_ GetError,SDL_Surface,SDL_SetVideoMode,SDL_Delay,SDL_Quit, että "undefined refrence" ja mitähän näistä virheistän sanotte? Oppaassa puhuttiin SDL-projektin aloittamisesta, mutta mulla ei ole hajuakaan miten se aloitetaan (*PAHIN ONGELMANI TÄMÄ*):

if( SDL_Init(SDL_INIT_VIDEO) < 0 )
    {
        fprintf(stderr, "SDL:n alustus ei onnistunut: %s\n", SDL_GetError());
        return 0;
    }


    SDL_Surface * naytto;

    naytto = SDL_SetVideoMode(1024, 768, 32, SDL_HWSURFACE|SDL_FULLSCREEN);




    SDL_Delay(5000);

    SDL_Quit();
    return 0;
}

Lopuksi kysyn että "Pitääkö joka SDL ohjelmoinnin alussa, alustaa tämä SDL ja millä merkillä tämä lähdekoodi lopetaan?"

[Kiitos ja kummarrus sille, joka minua neuvoo näissä kysymyksissä]

progo [26.12.2005 10:01:39]

#

Noi #pragma -rivit ovat vain Visual C++:n tekniikkaa, täällä täytyy mennä vaikeamman kautta, valitettavasti. Eli SDL-sovelluksia kääntääkseen joutuu aina tekemään projektin, jonne sitten syötetään (Project -> Options -> Parameters) Linker -kohtaan noi lisäkirjastot muodossa -l<kirjasto>, eli sama kuin komentorivillä komennettaessa.

Ne, mitä tarvitaan, ovat "-lSDLmain -lSDL" siellä Linker parameters -ruudussa. #pragmat voi heittää pois.

E: Kannattaa muuten valmistaa templateproju kunhan noi saa toimimaan, nopeasti pääsee tutkii uusia koodintynkiä. :)

Muu koodi näyttäisi vilkaisemalla ihan OK olevan.

Tumpelo [26.12.2005 11:11:06]

#

Minulla ainakin toimii SDL projektit ilman mitään kikkailuja kun otan vaan New Project -> SDL Project. Tuli muuten mieleen että miten SDL:llä voi näyttää videotiedostoja?

Edit: Asensitko SDL:n itse kikkailemalla vai käytitkö Dev-C++:n omaa rajapintojen asennussysteemiä?

Mazuli [26.12.2005 12:52:15]

#

Jos olet asentanut suoraan dev-pakin, valitse vain projekteista SDL, niin lib linkittyvät automaattisesti.

Azure [26.12.2005 16:50:56]

#

Okei tein näin: Avasin Dev-C++:an otin ylä kulmasta "Project -> Project Options -> Parameters" ja siellä oli Linker kohdassa oikealla ruutu jossa oli tällainen teksti:

-lmingw32 -lSDLmain -lSDL -liberty

OK! Mutta mitäs tästä sitten: Jos avaan sieltä ylä kulmasta "File -> New -> Project" syntyy vain sellanen ruutu jossa on ylhäällä valikkoja Basic, Introduction ja MultiMedia linkki ja sit painan sitä MultiMediaa ja siellä on SDL logo. Seuraavaksi painettuani tuota SDL logoa syntyy Create New Project ikkuna jossa on Dev-CPP kansio avattuna, mut mitä sitten pitää tehdä ja miten tää koodi tallentaan virheettömänä käännettäväksi projektina?

Metabolix [27.12.2005 02:00:40]

#

Eikös siitä aukea ihan normaali tallennusdialogi? Tallennat sen projektin johonkin sopivaan kansioon. Ei se ole sen ihmeempi kuin muutkaan projektit, siinä on vain asetukset valmiina kohdallaan.

Vastaus

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

Tietoa sivustosta