Allegro 5断言失败

时间:2013-11-19 08:15:08

标签: c++ windows visual-studio allegro allegro5

我正在尝试使用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

...

我该如何解决这个问题?

2 个答案:

答案 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.htmlhttp://manpages.ubuntu.com/manpages/zesty/en/man3/al_install_system.3alleg5.html这些是指向al_init()和al_install_system()Allegro功能手册页的链接