Anuncios Google

problema al compilar SDL

#include <stdio.h>
#include <SDL/SDL.h>             // Incluimos la librería SDL
 
 
int main()
 {
 
    SDL_Surface *pantalla;       // Definimos una superficie
    SDL_Event evento;            // Definimos una variable de eventos
 
 
    // Inicializamos SDL
 
    if(SDL_Init(SDL_INIT_VIDEO) < 0)
     {
 
	// En caso de error
 
	fprintf(stderr, "Error al inicializar SDL: %s\n", SDL_GetError());
	exit(1);
    }
 
    atexit(SDL_Quit);            // Al salir, cierra SDL
 
    // Establecemos el modo de pantalla
 
    pantalla = SDL_SetVideoMode(640, 480, 0, SDL_ANYFORMAT);
 
    if(pantalla == NULL); 
    {
 
	// Si no hemos podido inicializar la superficie
 
	fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
	exit(1);
 
    }
 
    // Personalizamos el título de la ventana
 
    SDL_WM_SetCaption("HOLA MUNDO", NULL);
 
 
    // Bucle infinito
 
    for(;;)
     {
 
	 // Consultamos los eventos
 
	while(SDL_PollEvent(&evento))
     {
 
	    if(evento.type == SDL_QUIT) // Si es de salida
		return 0;
	}
    }
 
}

me da fallo en el primer "{", el de despues de "int main" alguien sabe porque es? aqui los resultados:

 C:\Users\Rubén\Desktop\main.c In function `SDL_main':

 C:\Users\Rubén\Desktop\main.c number of arguments doesn't match prototype

 C:\Dev-Cpp\include\SDL\SDL_main.h prototype declaration

 C:\Users\Rubén\Desktop\Prueba_SDL\Makefile.win [Build Error]  [../main.o] Error 1

salu2 y grax adelantadas :D


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de rubenelportero

error en un "hola imagen" xD

// ----librerias---- \\
#include <stdlib.h>
#include <stdio.h>
#include <SDL\SDL.h> // Libreria SDL
#include <SDL\SDL_image.h> // Foto png
//----------------------------------------\\
imagen = IMG_Load("imagen.png");
SDL_Surface *pantalla; // Es la superficie principal o pantalla.
int done = 0;
main(int argc, char *argv[])
{
if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "No se puede iniciar SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
 
pantalla = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_SWSURFACE);
while (done == 0)
{
SDL_Flip(pantalla);
SDL_BlitSurface(imagen, NULL, pantalla,0,0); //<---- aqui me da el error
}

y el fallo que me da es este:

C:\Users\Rubén\Desktop\main.c In function `SDL_main':

19 C:\Users\Rubén\Desktop\main.c syntax error before '=' token

22 C:\Users\Rubén\Desktop\main.c `imagen' undeclared (first use in this function)

(Each undeclared identifier is reported only once

for each function it appears in.)

22 C:\Users\Rubén\Desktop\main.c too many arguments to function `SDL_UpperBlit'

C:\Users\Rubén\Desktop\Prueba_SDL\Makefile.win [Build Error] [../main.o] Error 1

¿alguna idea :)?, grax

Imagen de burnxez

Imágen

Primero no has declarado imagen, debes poner SDL_SUrface *imagen = NULL; despues ya le das el valor de "imagen.png"

En el Blit, borrate un 0 y una coma, tienes argumentos de màs.

Saludos.

Imagen de rubenelportero

e echo

lo que decias pero nada, mira:

// ----librerias---- \\
#include <stdlib.h>
#include <stdio.h>
#include <SDL\SDL.h> // Libreria SDL
#include <SDL\SDL_image.h> // Foto png
SDL_Surface *imagen = NULL; // Es la imagen
//----------------------------------------\\
imagen = IMG_Load("imagen.png");
SDL_Surface *pantalla; // Es la superficie principal o pantalla.
int done = 0;
main(int argc, char *argv[])
{
if ( SDL_Init(SDL_INIT_AUDIO|SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "No se puede iniciar SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
 
pantalla = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_SWSURFACE);
while (done == 0)
{
 SDL_Flip(pantalla);
 SDL_BlitSurface(imagen, NULL, pantalla,0); 
} // ahora va y me da error aqui -.-"

error:

C:\Users\Rubén\Desktop\main.c In function `SDL_main':

24 C:\Users\Rubén\Desktop\main.c syntax error at end of input

C:\Users\Rubén\Desktop\Prueba_SDL\Makefile.win [Build Error]  [../main.o] Error 1

maldita sea, nunca are funcionar la maldita imagen  -.-, Llora

Imagen de burnxez

NULL

Intenta poner NULL en lugar de 0.

Saludos.

Imagen de burnxez

C

Veo que estàs usando C, yo no tengo mucho que hacer ahì pues uso C++, aunque me resulta raro tu còdigo, cambia el bucle infinito for por uno while, del tipo:

 

bool over = false
 
while (over == false) {
 
...
 
if (alguna cosa) {
 
over = true;
 
}
 
return 0;
 
}

Te dejo la funciòn que yo uso para iniciar SDL:

bool initSDL()
{
	if ( SDL_Init ( SDL_INIT_EVERYTHING ) == -1 ) {
		cout << endl << "Error: " << SDL_GetError() << endl;
		return false;
	}
 
	screen = SDL_SetVideoMode ( 480, 272, 32, SDL_HWSURFACE | SDL_DOUBLEBUF );
 
	if ( !screen ) {
		cout << endl << "Error when attempting to start the screen" << endl;
		return false;
	}
 
	SDL_WM_SetCaption ( "TicTacToe++", NULL );
 
	SDL_ShowCursor ( SDL_DISABLE );
 
	return true;
}

De està manera sòlo tengo que llamar en el bucle main a "initSDL()"

Saludos.

Imagen de -Prince-

Yo también tengo errores de todo tipo con SDL...

Es bastante extraño... :S

Como si quisiera joderte la vida...

Imagen de rubenelportero

pero que co...?

e puesto la bandeja de codigo, pero sale mal... y todo amontonado, que será?  bueno, el codigo es este:

#include <stdio.h>
#include <SDL/SDL.h>             // Incluimos la librería SDL

int main()
 {

    SDL_Surface *pantalla;       // Definimos una superficie
    SDL_Event evento;            // Definimos una variable de eventos

    // Inicializamos SDL

    if(SDL_Init(SDL_INIT_VIDEO) < 0)
     {
   
    // En caso de error
   
    fprintf(stderr, "Error al inicializar SDL: %s\n", SDL_GetError());
    exit(1);
    }

    atexit(SDL_Quit);            // Al salir, cierra SDL

    // Establecemos el modo de pantalla

    pantalla = SDL_SetVideoMode(640, 480, 0, SDL_ANYFORMAT);

    if(pantalla == NULL);
    {

    // Si no hemos podido inicializar la superficie
   
    fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
    exit(1);
   
    }

    // Personalizamos el título de la ventana

    SDL_WM_SetCaption("HOLA MUNDO", NULL);

   
    // Bucle infinito

    for(;;)
     {
   
     // Consultamos los eventos
 
    while(SDL_PollEvent(&evento))
     {

        if(evento.type == SDL_QUIT) // Si es de salida
        return 0;
    }
    }

}

Imagen de NITEMAN

Culpa mía

Tengo un problema con el orden de aplicación de los filtros y estoy haciendo pruebas, disculpa.

Ya debería salirte bien.

Salu2


"El paraí­so a mi derecha, el infierno a mi izquierda y el ángel de la muerte tras de mi."

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.