[DevCpp] [Allegro] Problem z aplikacją.
Ostatnio zmodyfikowano 2009-07-02 20:44
Exequter Temat założony przez niniejszego użytkownika |
[DevCpp] [Allegro] Problem z aplikacją. » 2009-07-02 19:09:34 Witam, może mi ktoś powiedzieć dlaczego ta aplikacja crashuje zaraz po uruchomieniu (wystąpił problem z aplikacja, bla bla bla)? Wiem, że wywołuje to masked_blit, ale powinien przecież działać (próbowałem też ze zwykłym blit). Link do kodu programu - http://wklej.org/id/115331/klient.h zawiera: #include <allegro.h> #include <alpng.h> BITMAP *b1; BITMAP *b2; BITMAP *b3; BITMAP *b4; BITMAP *b5; Jezeli wszystko napisze w jednej funkcji program dziala normalnie :o |
|
malan |
» 2009-07-02 19:20:03 Rozumiem, że plik klient.h w całości wygląda tak: #ifndef klient_hpp #define klient_hpp
#include <allegro.h> #include <alpng.h>
BITMAP * b1; BITMAP * b2; BITMAP * b3; BITMAP * b4; BITMAP * b5;
#endif
? |
|
Exequter Temat założony przez niniejszego użytkownika |
» 2009-07-02 19:25:17 Nie mialem tych definicji, ale po podmienieniu nadal nie działa :/ Wystarczy, że załaduje bitmapę w mainie i wszystko śmiga, ale to bedzie bardzo nieczytelne kiedy będe miał dużo tych bitmap, nawet bede to przenosil do innego pliku .cpp dlatego zalezy mi na rozwiazaniu tego problemu. edit: probowalem tez tak -> http://wklej.org/id/115366/I nadal crashuje. |
|
DejaVu |
» 2009-07-02 20:40:27 Z tego co napisałeś nic nie wynika.
/edit: bitmapy ładujesz do zmiennych lokalnych funkcji, które giną zaraz po wyjściu z niej, tak więc program Ci się krzaczy bo wskaźniki w zmiennych globalnych nie istnieją. |
|
Exequter Temat założony przez niniejszego użytkownika |
» 2009-07-02 20:42:24 Jak to nic nie wynika?:E Ok, poradziłem sobie. Jezeli ktos by mial podobny problem, to wrzucam kod (uzylem pliku .dat do przechowywania obrazkow): http://wklej.org/id/115375/ |
|
Tombol |
» 2009-07-02 20:44:12 Miałem kiedyś problem z masked blit nie pamiętam czemu ale chyba dlatego że był on w funkcji ; d Może zobacz czy jak zrobisz ją inline to by działało ; d Zresztą jakoś dziwnie to robisz
masked_blit((BITMAP*) giera[numer].dat, screen, 0, 0, 0, 0, ((BITMAP*) giera[numer].dat)->w, ((BITMAP*) giera[numer].dat)->h);
Zresztą tak jak pisze w documentation trzeba mieć wskaźnik do BITMAP'y a u Ciebie jest to (chyba) w innym pliku co też nie wiem czy jest dobrym pomysłem ; d |
|
« 1 » |