Autor
|
Tema: aiudaaa!!! (Leído 3,582 veces)
|
sanxez1
Desconectado
Mensajes: 36
|
Llevo toda la mañana tratando soluconar el siguiente error: id returned 1 ext status undefined reference to `WinMain@16' (utilizo dev c++) Utilizo el compilador TMD-GCC 4.9.2 32-BIT RELEASE este es el codigo que trato de compilar: #include <stdio.h> #include <stdlib.h> #include <allegro.h> #include <iostream>
int iniciar(); void realizar_juego(); void terminar();
int iniciar(){ allegro_init(); install_keyboard(); set_color_depth(16); if (set_gfx_mode(GFX_AUTODETECT,640,480,0,0)<0){ printf("error al iniciar el modo grafico\n"); allegro_exit(); exit(-1); } }
void terminar(){ allegro_exit(); } int main(){ iniciar(); realizar_juego(); terminar(); } void realizar_juego(){ BITMAP *nave; PALETTE paleta; int x,y, x_anterior, y_anterior; BITMAP * buffer; nave=load_bitmap("C:/Users/DANIEL/Desktop/Programación/C++/Allegro/Naves/recursos/nave.pcx", paleta); set_palette(paleta); if (nave==NULL) terminar(); buffer=create_bitmap(nave->w,nave->h); clear (buffer); if (buffer==NULL) terminar(); x=SCREEN_W/2; y=SCREEN_H/2; while (!key[KEY_ESC]){ if (key[KEY_UP,KEY_W]) y--; if (key[KEY_DOWN,KEY_S]) y++; if (key[KEY_LEFT,KEY_A]) x--; if (key[KEY_RIGHT,KEY_D]) x++; if (x<0) x=x_anterior; if (x>SCREEN_W-nave->w) x=x_anterior; if (y<0) y=y_anterior; if (y>SCREEN_H-nave->h) y=y_anterior; if ((x_anterior!=x) || (y_anterior!=y)){ blit (buffer,screen, 0, 0, x_anterior, y_anterior,buffer->w,buffer->h); blit (screen,buffer,x,y,0,0,buffer->w,buffer->h); draw_sprite(screen,nave, x, y); } x_anterior=x; y_anterior=y; } }
gracias!!
|
|
« Última modificación: 11 Septiembre 2016, 21:02 pm por sanxez1 »
|
En línea
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.696
🏴 Libertad!!!!!
|
Hola ya vi tu error, no tienes una funcion Principal definida. tienes que tener: int main(){ //llamar a tus funciones aqui. }
Saludos!
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
me sigue saliendo el mismo error...
|
|
« Última modificación: 2 Septiembre 2016, 16:27 pm por sanxez1 »
|
En línea
|
|
|
|
JonaLamper
Desconectado
Mensajes: 394
|
¿Dónde has declarado el main? Debería ser algo así: // Supongamos que aquí empieza tu fichero // Aquí incluyes tus librerías using namespace std; // Yo suelo usar el espacio de nombres y lo pongo justo a continuación de las librerías // Aquí implementas todas tus funciones como por ejemplo: terminar(), realizar_juego(), etc // Y aquí abajo es donde tienes que poner el main int main(){ // Aquí llamas a tus funciones, como te dijo Alberto return 0; }
Otra opción es declarar los prototipos de las funciones arriba, después implementar la función main y después implementar tus funciones (eso quizá estaría mejor), pero si así te sirve también está bien.
|
|
« Última modificación: 2 Septiembre 2016, 18:09 pm por JonaLamper »
|
En línea
|
Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
|
|
|
dato000
Desconectado
Mensajes: 3.034
|
Como dijeron arriba, falta un main, además, no confies en Dev-C++, hace mucho tiempo dejo de recibir soporte, por lo que nada raro tenga problemas de compatibilidad con cualquier cosa. Usa Codeblocks. Nunca hay que olvidar lo básico en la estructura de lenguaje en programación, en el caso de c++: #include <iostream.h> using namespace std; main() { cout << "Hello World!"; return 0; }
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
me sigue saliendo lo mismo
|
|
« Última modificación: 3 Septiembre 2016, 14:39 pm por sanxez1 »
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
Inserta la macro END_OF_MAIN() justo después de la función main(): // ... CÓDIGO int main() { // ... CÓDIGO } END_OF_MAIN() // ... CÓDIGO
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
Muchísimas gracias a todos, ya funciona!!
|
|
|
En línea
|
|
|
|
Evox4
Desconectado
Mensajes: 9
|
y cual fue el error?
|
|
|
En línea
|
|
|
|
sanxez1
Desconectado
Mensajes: 36
|
Después de modificar el código funcionó.
|
|
|
En línea
|
|
|
|
|
|