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, что означает, что при загрузке шрифта произошла ошибка. Что я делаю неправильно? Я использую Codeblocks IDE с компилятором mingw для Windows XP SP 3. Что я делаю неправильно?

РЕДАКТИРОВАТЬ: я исправил это, добавив файл ttf в каталог моего проекта. Голосуйте, чтобы закрыть


person Bugster    schedule 30.08.2012    source источник


Ответы (1)


У вас две проблемы, одну вы уже обнаружили. Во-вторых, вы инициализируете надстройки перед вызовом al_init().

Вам следует прочитать это руководство по устранению неполадок, чтобы узнать, как правильно загружать ресурсы из относительные местоположения кросс-платформенным способом.

person Matthew    schedule 30.08.2012
comment
Спасибо, что указали на это, я думал, что это не имеет значения - person Bugster; 31.08.2012