I use the Dev-C++ compiler, but recently I moved all the files onto another partition, and ever since, my programs crash when they encounter the "screen" bitmap. I have tested this a number of times. Even programs that were working fine, if I altered them slightly, they would crash when I ran them.
An example:
1 | #include <allegro.h> |
2 | |
3 | int main () |
4 | { |
5 | while (!key[KEY_ESC]) |
6 | { |
7 | allegro_init (); |
8 | set_gfx_mode (GFX_AUTODETECT_WINDOWED, 250, 100, 0, 0); |
9 | install_keyboard (); |
10 | |
11 | textprintf_ex(screen, font, 0, 0, makecol(0, 0, 0), 0, "Hello World!"); |
12 | } |
13 | |
14 | allegro_exit (); |
15 | return 0; |
16 | }END_OF_MAIN () |
This compiles perfectly, but crashes when I run it.
1 | // Zanmoto's code, comments added by me |
2 | #include <allegro.h> |
3 | |
4 | int main () |
5 | { |
6 | while (!key[KEY_ESC]) // how is the key array supposed to work, before you ever installed the keyboard handler or initialized allegro? |
7 | { // are you aware of the fact that you keep initializing allegro and setting the screen mode in a (probably neverending) loop? |
8 | allegro_init (); |
9 | set_gfx_mode (GFX_AUTODETECT_WINDOWED, 250, 100, 0, 0); // check the return values of the functions you call! |
10 | install_keyboard (); |
11 | |
12 | textprintf_ex(screen, font, 0, 0, makecol(0, 0, 0), 0, "Hello World!"); |
13 | } |
14 | |
15 | allegro_exit (); |
16 | return 0; |
17 | }END_OF_MAIN () |
Sorry, that's just force of habbit (the ne'er ending loop)
Edited Code
#include <allegro.h> int main () { allegro_init (); set_gfx_mode (GFX_AUTODETECT_WINDOWED, 250, 100, 0, 0); install_keyboard (); textprintf_ex(screen, font, 0, 0, makecol(0, 0, 0), 0, "Hello World!"); allegro_exit (); return 0; }END_OF_MAIN ()
Hint: Heed what Dennis said about checking return values.
(missed that comment the first time, damn I'm blind) Finally fixed it thanks to everyones help. I also want to apologise for double-posting. Thanks again.
(For anyone who wants to know, the error was caused by an incorrect color depth and resolution, which, until recently, wasn't an issue)
(missed that comment the first time, damn I'm blind)
Actually that was my bad. I realized that I forgot that comment after posting and went and edited my post to put it in and you must have read/posted your response while I was still editing mine.
haha Still, thanks very much Dennis.