我正在尝试使用allegro 5.0.10加载位图
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 :(得分:0)
您需要致电al_init()
来初始化allegro。在这之前,可以调用很少的Allegro函数。
答案 1 :(得分:0)
@ junyi00,您需要确保在尝试加载任何资源之前调用al_init()
。在上面的代码中,确保在调用al_init()
,al_get_standard_path(ALLEGRO_RESOURCES_PATH)
,al_set_path_filename(path, "Bitmap.bmp")
以及基本上所有Allegro函数之前已调用al_load_bitmap(al_path_cstr(path, '/'))
。除了一个或两个函数之外,在此函数之前不能调用任何其他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功能手册页的链接