Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Code Blocks allegro 5,Assertion failed: bitmap

Ostatnio zmodyfikowano 2016-06-04 20:39
Autor Wiadomość
Nekronomik
Temat założony przez niniejszego użytkownika
Code Blocks allegro 5,Assertion failed: bitmap
» 2016-05-27 19:45:31
Witam. Gdy kompiluje program i się uruchamia dostaje taki oto komunikat :
Assertion failed: bitmap, file d:\Libraries\build\allegro\src\allegro-git\allegro-git\src\bitmap_draw.c, line 138
gdy usuwam bitmape to dostaje po odpaleniu kolejny komunikat Assertion failed: font.
To tak jak by nie mógł znaleźć bitmapy i font w folderze, lecz gdy odpalam program z pliku exe to wszystko działa dobrze. Sprawdzałem ścieżkę d:\Libraries\build\allegro\src\allegro-git\allegro-git\src\bitmap_draw.c i nie wiem skąd Code Blocks ją ma jak u mnie nawet d:\ nie istnieje. Na Dev C++ wszystko działa dobrze.
P-148624
j23
» 2016-05-28 10:53:35
Znajdź plik bitmap_draw.c i zobacz, co znajduje się w linii 138 (chodzi o asercję).

P-148641
Nekronomik
Temat założony przez niniejszego użytkownika
» 2016-05-28 18:40:48
plik bitmap_draw.c nie istnieje.
P-148652
j23
» 2016-05-28 18:54:38
Aha, czyli ściągnąłeś same binarki (i nagłówki). To już wiadomo skąd ta "dziwna" ścieżka.

Gugel znalazł mi plik bitmap_draw.c:
C/C++
void al_draw_tinted_bitmap( ALLEGRO_BITMAP * bitmap, ALLEGRO_COLOR tint,
float dx, float dy, int flags ) // <--- linia 138
{
    ASSERT( bitmap );
    al_draw_tinted_bitmap_region( bitmap, tint, 0, 0,
    bitmap->w, bitmap->h, dx, dy, flags );
}
Coś mi się wydaje, że bitmap jest NULL, a nie powinien. Sprawdź, czy o czymś u siebie nie zapomniałeś.
P-148653
Nekronomik
Temat założony przez niniejszego użytkownika
» 2016-05-28 19:15:46
Raczej o niczym nie mogłem zapomnieć bo plik exe normalnie mi się otwiera i wyświetla grafikę. Ten błąd pojawia się tylko wtedy gdy w code blocks klikam na kompiluj/uruchom, błąd wyświetla się w konsoli(program się normalnie kompiluje).
P-148654
1aam2am1
» 2016-05-28 19:34:18
Czyli twój program uruchomiony w code::block ma inną ścieżkę niż uruchomiony normalnie przez co nie jest wczytywana bitmapa gdyż nie znajduje pliku.
P-148655
j23
» 2016-05-28 19:38:53
@Nekronomik: dobrze raczej też nie jest, skoro dostajesz błąd asercji. Jeśli asercja powoduje zatrzymanie działania, to dobrze. Użyj okna call stack, by zobaczyć z którego miejsca twojego kodu jest wystrzał, wtedy sprawdź, jeśli to możliwe, czy bitmap ma poprawną wartość.

ps. to, że coś się normalnie kompiluje, nie oznacza od razu, że jest w 100% poprawnie napisane.
P-148656
Nekronomik
Temat założony przez niniejszego użytkownika
» 2016-05-28 19:48:03
No ale Dev C++ bez problemu to kompiluje.
Program odpala bez tych linijek kodu:
al_draw_bitmap (test,10,10,ALLEGRO_FLIP_VERTICAL | ALLEGRO_FLIP_HORIZONTAL);//test
al_draw_textf( czcionka, al_map_rgb( 230, 230, 230 ), 200, 10, ALLEGRO_ALIGN_CENTRE, opcje.login.c_str());
al_draw_textf( czcionka, al_map_rgb( 230, 230, 230 ), 200, 40, ALLEGRO_ALIGN_CENTRE, opcje.haslo.c_str());
al_draw_textf( czcionka, al_map_rgb( 230, 230, 230 ), 200, 70, ALLEGRO_ALIGN_CENTRE, "Logowanie");
Całą kopie zrobiłem z dev'a
P-148657
« 1 » 2 3
  Strona 1 z 3 Następna strona