Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: SDL välähtävä ikkuna

Sivun loppuun

supermies [10.11.2014 20:15:25]

#

siis ikkuna välähtää vaan.
käytän SDL2, windows 8.1 64-bit ja codeblocks


ja teen noit lazy foo' juttuja ja koodi on siis tää

#include <SDL.h>
#include <stdio.h>

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

bool init();

bool loadMedia();

void close();

SDL_Window* gWindow = NULL;

SDL_Surface* gScreenSurface = NULL;

SDL_Surface* gHelloWorld = NULL;

bool init(){

bool success = true;

if( SDL_Init( SDL_INIT_VIDEO ) < 0 ){
printf( "SDL virhe SDL_Error: %s\n", SDL_GetError() );
success = false;
}
else{
 gWindow = SDL_CreateWindow( "SDL YEAH", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
  if ( gWindow == NULL )
  {

      printf( "ikkuna rikki SDL_Error: %s\n", SDL_GetError() );
      success = false;
  }
  else{


    gScreenSurface = SDL_GetWindowSurface( gWindow );
  }

  }
  return success;
}
bool loadMedia(){
bool success = true;
gHelloWorld = SDL_LoadBMP( "SDL/pinguen.bmp" );
if ( gHelloWorld == NULL )
{
    printf( "kuva virhe %s SDL Error: %s\n", "SDL/pinguen.bmp", SDL_GetError() );
    success = false;
}
return success;
}
void close(){


SDL_FreeSurface( gHelloWorld );
gHelloWorld = NULL;

SDL_DestroyWindow( gWindow );
gWindow = NULL;
SDL_Quit();
}
int main ( int argc, char* args[] )
{
    if ( !init() )
    {
    printf( "Fail!!!\n" );
    }
    else{

        if ( !loadMedia() ){

            printf( "media virhe\n" );
        }
        else{

            SDL_BlitSurface ( gHelloWorld, NULL, gScreenSurface, NULL );
        SDL_UpdateWindowSurface( gWindow );
        SDL_Delay( 10000 );
        }

    }
    close();
    return 0;
}

ja jostain syystä sis vaa välähtää ruudul, eikä tuu mitää erroreitakaa.

täs toi log

-------------- Build: Debug in SDL (compiler: GNU GCC Compiler)---------------

Target is up to date.
Nothing to be done (all items are up-to-date).


-------------- Run: Debug in SDL (compiler: GNU GCC Compiler)---------------

Checking for existence: C:\Users\nevil\Documents\Projects\SDL\bin\Debug\SDL.exe
Executing: "C:\Users\nevil\Documents\Projects\SDL\bin\Debug\SDL.exe"  (in C:\Users\nevil\Documents\Projects\SDL\.)
Process terminated with status 0 (0 minute(s), 0 second(s))

Eki++ [10.11.2014 21:35:39]

#

Onko tiedosto varmasti liitetty projektiin? Koska tuon login mukaan mitään käännöstä ei ole tapahtunut.

supermies [10.11.2014 21:47:11]

#

joo kai...

Eki++ [10.11.2014 22:10:21]

#

Sulla on projektin määrityksissä virhe. Itse kokeilin:

supermies [10.11.2014 22:19:42]

#

ei vaa toimi siis käytän sdl 32 bittistä versioo koska en saanu 64 bittistä toimii (onks sil välii?) siis windows on 64 bittininen...
ja siis linkkeri parametrit on nyt noi mitä laitoit... ja nyt siihen tuli yhtäkkii tällänen error

c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.8.1\..\..\..\libmingw32.a(main.o):main.c:(.text.startup+0xa7)||undefined reference to `WinMain@16'|

...ei vaa toimi ja käytän siis codeblocksii

Eki++ [10.11.2014 22:21:25]

#

Laita includeiden jälkeen #undef main.

supermies [10.11.2014 22:23:30]

#

taas vaa väläyttää sen

Eki++ [10.11.2014 22:25:19]

#

Onko projektikansiossa tiedostoa stdout.txt tai stderr.txt? SDL ohjaa standardivirtojen tulostukset joskus sinne. Jos haluat tulostuksen konsoliin, lisää parametri -mconsole.

supermies [10.11.2014 22:26:41]

#

ei oo noit tiedostoi siel on SDL.layout ja SLD.depend sain kuvan tost consolest ja sielt tuli nää errorit: http://fpaste.dy.fi/2P

nomic [10.11.2014 22:58:48]

#

Luitko virhettä ja katsoitko mitä koodi tekee jos ei löydä kuvaa?
Voit myös Codeblocksista määritellä missä hakemistossa ohjelma suoritetaan. Project -> Properties -> Build Targets ja valitset joko Debug tai Release -> execution working dir.
Jos taasen menet suoraan hakemistoon ja käynnistät sovelluksen, se pitäisi toimia suoriltaan.

supermies [10.11.2014 23:01:05]

#

joo eli tajusin se ei löydä tota kuvaa ja jos se ei löydä sitä se ei käynnisty :D mut miks???

Metabolix [11.11.2014 00:26:25]

#

Koska olet koodannut sen niin, ja koska et ole asettanut suoritushakemistoa oikein, kuten nomic neuvoo. Vai mahtaako sitä kuvaa olla sinulla ollenkaan?

supermies [11.11.2014 07:25:29]

#

kiitti... :D


Sivun alkuun

Vastaus

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

Tietoa sivustosta