2012-08-30 51 views
0

我最近开始使用Allegro 5,并尝试加载字体。这是我的代码:加载字体时Allegro 5崩溃

#include <allegro5/allegro.h> 
#include <allegro5/allegro_font.h> 
#include <allegro5/allegro_ttf.h> 
#include <allegro5/allegro_native_dialog.h> 

int main() 
{ 
    al_init_font_addon(); 
    al_init_ttf_addon(); 
    ALLEGRO_DISPLAY *display = NULL; 
    if(!al_init()) 
    { 
     al_show_native_message_box(NULL, NULL, NULL, "Error", NULL, NULL); 
     return -1; 
    } 
    display = al_create_display(800, 800); 
    ALLEGRO_FONT *font1 = al_load_font("arial.ttf", 12, 0); 

    if(!font1) 
    { 
     al_show_native_message_box(NULL, NULL, NULL, "Error 3", NULL, NULL); 
     return -3; 
    } 
    al_clear_to_color(al_map_rgb(0, 0, 0)); 
    al_draw_text(font1, al_map_rgb(255, 0, 255), 50, 50, ALLEGRO_ALIGN_CENTRE, "Hello font size: 12"); 
    al_flip_display(); 

    al_rest(3.0); 
    al_destroy_font(font1); 
    al_destroy_display(display); 
    return 0; 
} 

但是,在运行代码时它返回-3,这意味着加载字体时出错。我究竟做错了什么?我在Windows XP SP 3 mingw编译器中使用Codeblocks IDE。我究竟做错了什么?

编辑: 我通过添加ttf文件到我的项目目录来解决它。投票关闭

回答

1

你有两个问题,一个是你已经发现的。另一个是你在调用al_init()之前初始化加载项。

您应该阅读this troubleshooting guide以了解如何以跨平台的方式正确加载相对位置的资源。

+0

感谢您指出这一点,我认为这没有什么区别 – Bugster