• Jueves 14 de Noviembre de 2024, 08:00

Autor Tema:  me da error con una funcion de allegro  (Leído 1388 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
me da error con una funcion de allegro
« en: Sábado 9 de Octubre de 2010, 00:58 »
0
si elimino la linea 21 del implementacion.cpp, no me sale error, pero no se cual es el problema con esa linea.

este es el code:

main.cpp
Código: C++
  1. #include <allegro.h>
  2. #include "declaracion.h"
  3.  
  4. int main()
  5. {
  6.  init();
  7.  
  8.  while(!key[KEY_ESC])
  9.  {
  10.    dibujar();
  11.  }
  12.  
  13.  deinit();
  14.  return 0;
  15. }
  16. END_OF_MAIN()
  17.  

implementacion.cpp
Código: C++
  1. #include <allegro.h>
  2.  
  3. BITMAP *buffer;
  4.  
  5. void init()
  6. {
  7.  int depth, res;
  8.  allegro_init();
  9.  set_color_depth(32);
  10.  set_gfx_mode(GFX_AUTODETECT_WINDOWED, 600, 600, 0, 0);
  11.  install_timer();
  12.  install_keyboard();
  13.  install_mouse();
  14.  install_timer();
  15. }
  16.  
  17. void deinit() {clear_keybuf();}
  18.  
  19. void dibujar()
  20. {
  21.  clear_bitmap(buffer);
  22. }
  23.  

declaracion.h
Código: C++
  1. void init();
  2. void deinit();
  3. void dibujar();
  4.  

no es un error de compilacion, sino que cuando se ejecuta el programa me sale error
"proyecto1 ha detectado un error y debe cerrarce"
« última modificación: Sábado 9 de Octubre de 2010, 03:28 por Alfonsos1 »

Radger

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: me da error con una funcion de allegro
« Respuesta #1 en: Sábado 9 de Octubre de 2010, 02:21 »
0
Hola

No se nada sobre allegro por lo que posiblemente que equivoque, pero creo que el problema es que buffer no lo inicializas osea apunta a cualquier sitio por lo que al hacer clear_bitmap(buffer) provoca ese fallo(eso si te refieres a la linea 21, por que pusiste la 31).

Prueba a declarar buffer asi BITMAP buffer y si  clear_bitmap requiere de un puntero pon lo siguiente:

Código: C++
  1. clear_bitmap(&buffer);
  2.  

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: me da error con una funcion de allegro
« Respuesta #2 en: Sábado 9 de Octubre de 2010, 03:33 »
0
si, me referia a la linea 21.

crei que en la linea 3 ya habia inicializado la variable buffer.

alguien sabe como corregir esto q me diga porfx

solucionado, puse esta linea despues de la linea 14 del implementacion.cpp
buffer=create_bitmap(SCREEN_W,SCREEN_H);

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: me da error con una funcion de allegro
« Respuesta #3 en: Lunes 11 de Octubre de 2010, 07:30 »
0
En efecto, la función clear_bitmap espera un puntero a BITMAP, pero al tratar de realizar las operaciones se encontraba con que no había memoria reservada para el puntero que recibió, por ello el error.

Qué bien que lo solucionaste :).
La imaginación es el límite.
Hardware & Software | Mexchip