Foros del Web » Programación para mayores de 30 ;) » C/C++ »

PROBLEMA CON ALLEGRO y C++

Estas en el tema de PROBLEMA CON ALLEGRO y C++ en el foro de C/C++ en Foros del Web. Lo que me pasa es que cuando intento cargar una imagen con BITMAP *BackgroundImage = load_bitmap ("photo.bmp", NULL); y despues la meto con un blit ...
  #1 (permalink)  
Antiguo 28/04/2011, 20:27
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Mensaje PROBLEMA CON ALLEGRO y C++

Lo que me pasa es que cuando intento cargar una imagen con BITMAP *BackgroundImage = load_bitmap ("photo.bmp", NULL); y despues la meto con un blit (BackgroundImage, Buffer, 0,0,0,0,640,480); Me aggarra error de esta forma: Excepción no controlada en 0x10073729 en yeah.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0x00000000.
El programa '[2632] yeah.exe: Nativo' terminó con código -1073741819 (0xc0000005).

Y me marca que el error esta en el blit, es mas borre lo de BITMAP... y salio bien solo que sin la imagen de fondo. Trate de cambiar la imagen, desinstale el 2010 e instale el 2008 pero sigue igual.

Alguno sabe como solucionarlo?
  #2 (permalink)  
Antiguo 28/04/2011, 21:46
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: PROBLEMA CON ALLEGRO y C++

Me suena a problema de memoria y punteros.

Si posteas tu codigo podre ayudarte mucho mas.

saludos
  #3 (permalink)  
Antiguo 29/04/2011, 04:36
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: PROBLEMA CON ALLEGRO y C++

Como ya te han dicho con el código resulta más fácil pero creo que puede ser debido a que la imagen no se haya cargado bien. Intenta hacer un chequeo antes del blit.

Código C++:
Ver original
  1. BITMAP *BackgroundImage = load_bitmap ("photo.bmp", NULL);
  2. if (!BackgroundImage)
  3. {
  4. set_gfx_mode(GFX_TEXT, 0, 0, 0, 0);
  5. allegro_message("No se pudo cargar la imagen...");
  6. readkey();
  7. exit(EXIT_FAILURE);
  8. }
  9. blit(BackgroundImage,Buffer, 0,0,0,0,640,480);
__________________
Foros Desarrollo de Juegos
  #4 (permalink)  
Antiguo 29/04/2011, 16:46
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: PROBLEMA CON ALLEGRO y C++

#include <allegro.h>

int main (){

allegro_init ();
install_mouse ();
install_keyboard ();
set_color_depth (16);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
set_window_title ("Game");
BITMAP *Buffer = create_bitmap (640, 480);
BITMAP *BackgroundImage = load_bitmap ("photo.bmp", NULL);

bool santi = false;

int x, y;
x = 0;
y = 400;

while (!santi) {

if (key[KEY_UP])
y -= 5;
if (key[KEY_DOWN])
y += 5;
if (key[KEY_LEFT])
x -= 5;
if (key[KEY_RIGHT])
x += 5;

blit (BackgroundImage, Buffer, 0, 0, 0, 0, 640, 480);
rectfill(Buffer, x, y, x+10, y+10, makecol (255, 0, 0));
blit (Buffer, screen, 0, 0, 0, 0, 640, 480);
rest (60);
clear_bitmap (Buffer);

if (key[KEY_ESC])
santi = true;

}

return 0;
}
END_OF_MAIN()

El codigo es algo asi, nose como hacer para subirlo con el coso fachero ese del comentario de arriba pero bueno, para que masomenos entiendan. Muchas gracias
  #5 (permalink)  
Antiguo 29/04/2011, 22:55
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: PROBLEMA CON ALLEGRO y C++

Bueno ya he probado tu codigo y lo corri con un depurador.
Esta es la linea mala.

Código:
blit (BackgroundImage, Buffer, 0, 0, 0, 0, 640, 480);
Lo unico que se me ocurre es que no se carga el bmp por alguna razon y como no hay nada que lo verifique pues entonces a la hora de querer copiar un bitmap erroneo(puntero en cero) pues te da ese error.

Pon una condicion como te lo han sugerido para ver si se carga correctamente el bitmap.

Saludos
  #6 (permalink)  
Antiguo 30/04/2011, 09:49
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: PROBLEMA CON ALLEGRO y C++

te deje un mensaje en tu perfil instru
  #7 (permalink)  
Antiguo 30/04/2011, 14:46
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Respuesta: PROBLEMA CON ALLEGRO y C++

No entiendo para que me enviaste un mensaje privado si por aqui se peude solucionar el problema.

Aparte ya te di la clave de la solucion.

Tan solo si comentas la linea que te dije, el programa corre sin ningun problema.

Saludos
  #8 (permalink)  
Antiguo 30/04/2011, 18:18
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: PROBLEMA CON ALLEGRO y C++

Lo que pasa es que puse la solucion pero me da que hay un error al subir la imagen, entonces pense que talvez habia que ubicarla en otro lado y la peguen enm todas las carpetas por si acaso... pero no hay caso, nose que pasa.
  #9 (permalink)  
Antiguo 30/04/2011, 18:25
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: PROBLEMA CON ALLEGRO y C++

Será por un problema de configuración de tu editor
Intenta escribiendo la ruta entera del archivo, por ejemplo "C:\Imagenes\imagen.bmp". Si esto funciona deberías configurar tu editor para que busque los ficheros en la capeta que tu quieras.
__________________
Foros Desarrollo de Juegos
  #10 (permalink)  
Antiguo 01/05/2011, 10:56
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: PROBLEMA CON ALLEGRO y C++

ssaammuu trate pero ahora me da este error:

1>------ Operación Generar iniciada: proyecto: po, configuración: Debug Win32 ------
1>Compilando...
1>poc.cpp
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'S' : secuencia de escape de carácter no reconocida
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'D' : secuencia de escape de carácter no reconocida
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'V' : secuencia de escape de carácter no reconocida
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'P' : secuencia de escape de carácter no reconocida
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'p' : secuencia de escape de carácter no reconocida
1>c:\users\santi\documents\visual studio 2008\projects\po\poc.cpp(10) : warning C4129: 'e' : secuencia de escape de carácter no reconocida
1>Vinculando...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: símbolo externo _main sin resolver al que se hace referencia en la función ___tmainCRTStartup
1>C:\Users\Santi\Documents\Visual Studio 2008\Projects\po\Debug\po.exe : fatal error LNK1120: 1 externos sin resolver
1>El registro de compilación se guardó en el "file://c:\Users\Santi\Documents\Visual Studio 2008\Projects\po\Debug\BuildLog.htm"
1>po - 2 errores, 6 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
  #11 (permalink)  
Antiguo 01/05/2011, 11:11
 
Fecha de Ingreso: abril-2011
Mensajes: 88
Antigüedad: 13 años
Puntos: 24
Respuesta: PROBLEMA CON ALLEGRO y C++

Perdona, fallo mío.
Cambia \ por /
C:/blabla/imagen.bmp
__________________
Foros Desarrollo de Juegos
  #12 (permalink)  
Antiguo 01/05/2011, 11:13
 
Fecha de Ingreso: junio-2010
Mensajes: 18
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: PROBLEMA CON ALLEGRO y C++

no sigo en las mismas, vos te animarias a entrar por teamviewer y ver si encontras la solucion?
  #13 (permalink)  
Antiguo 01/05/2011, 13:03
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: PROBLEMA CON ALLEGRO y C++

No tienes que dar vueltas las barras. SIno duplicarlas para que la secuencia de escape interprete que va una barra.

"C:\\Imagenes\\imagen.bmp"

Etiquetas: allegro, bitmap, buffer, c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:09.