2013-11-19 4 views
-1

Я пытаюсь загрузить растровое изображение с аллегро 5.0.10Allegro 5 утверждение не в состоянии

ALLEGRO_PATH *path = al_get_standard_path(ALLEGRO_RESOURCES_PATH); 
al_set_path_filename(path, "Bitmap.bmp"); 

al_init_image_addon(); 
ALLEGRO_BITMAP *bmp = al_load_bitmap(al_path_cstr(path, '/')); 
if (!bmp) { 
    fprintf(stderr, "No Background.bmp in this directory..."); 
    return -2; 
} 

al_draw_bitmap(bmp, 0, 0, 0); 

После того, как я попытался запустить программу в режиме отладки, я получаю эту ошибку:

Assertion failed! 

Program: c:\allegro\bin\allegro-5.0.10-monolith-md-debug.dll 
File: allegro-git\src\system.c 
Line: 336 

Expression: active_sysdrv 

... 

Как я исправить это?

ответ

0

Вам необходимо инициализировать аллегро, вызвав al_init(). Перед этим можно вызвать очень мало функций Allegro.

+0

Я не показывать полный код, но я сделал необходимые вещи уже – junyi00

+0

@ junyi00, если бы вы называли 'al_init() 'вы не получите эту ошибку. – Matthew

+0

Я уже сделал это – junyi00

0

@ junyi00, вы должны убедиться, что вы вызываете al_init(), прежде чем пытаться загрузить любые ресурсы. В приведенном выше коде убедитесь, что al_init() уже вызывается перед вызовом al_get_standard_path(ALLEGRO_RESOURCES_PATH), al_set_path_filename(path, "Bitmap.bmp"), al_load_bitmap(al_path_cstr(path, '/')) и в основном все функции Allegro оттуда. Никакие другие функции Allegro не могут быть вызваны до этой функции, кроме одного или двух. См http://manpages.ubuntu.com/manpages/artful/en/man3/al_init.3alleg5.html и http://manpages.ubuntu.com/manpages/zesty/en/man3/al_install_system.3alleg5.html Это ссылки на al_init() и al_install_system() функция Allegro страницы руководства