C++ 如何在Allegro 5和Algif5插件中使用GIF?

C++ 如何在Allegro 5和Algif5插件中使用GIF?,c++,allegro,allegro5,C++,Allegro,Allegro5,我试着用这个:但这个不行 #include "algif.h" char const* pathBoss1 = "boss1.gif"; ALGIF_ANIMATION *boss1Gif = NULL; boss1Gif = algif_load_animation(pathBoss1); // in a function: al_draw_bitmap(algif_get_bitmap(bossGif, al_get_time()), boss.x, boss.y, 0); 它抛出了很

我试着用这个:但这个不行

#include "algif.h"

char const* pathBoss1 = "boss1.gif";
ALGIF_ANIMATION *boss1Gif = NULL;
boss1Gif = algif_load_animation(pathBoss1);
// in a function: 
al_draw_bitmap(algif_get_bitmap(bossGif, al_get_time()), boss.x, boss.y, 0);
它抛出了很多这样的错误

严重性代码说明项目文件行抑制状态 错误LNK2019未解析的外部符号\u algif\u获取\u位图被引用 函数中的void uu cdecl drawBossstruct Boss&结构 阿尔及夫动画* ?drawBoss@@YAXAAUBoss@@PAUALGIF_动画@@@Z LearnAllegro C:\Users\User\source\repos\LearnAllegro\LearnAllegro\LearnAllegro.obj 1

好像找不到图书馆似的。 我将所有下载的文件放入ProjectName>ProjectName,因为那里还有其他.h文件


我该怎么办?

没有正式的库,而是需要将algif.c、bitmap.c、gif.c和lzw.c添加到源文件中


或者,如果你知道如何创建一个库,你可以用这4个文件创建一个库,然后链接到该库。

该库不适合我,我最终单独输入了gif帧。我使用的这个for循环可能会帮助您: 简化版:

for (int i = 0; i < maxFrameBoss1; i++) {
    std::string filename;
    filename = "boss1//frame_" + std::to_string(i) + "_delay-0.03s.png";


    boss1Image[i] = al_load_bitmap(filename.c_str());
    if (!boss1Image[i]) {
        fprintf(stderr, "failed to create boss1Image bitmap!\n");
        return -1*i;
    }
}
确保在课程开始时包括以下内容:

#include <iostream>
#include <string>

我将这些文件放在projectName>projectName中,并添加了include algif.h。我得到了这些错误:未解析的外部符号\u algif\u load\u函数中引用的动画\u mainlarnallegroc:\Users\User\source\repos\LearnAllegro\LearnAllegro\LearnAllegro.objun已解析的外部符号\u algif\u destroy\u函数中引用的动画\u mainlarlegroc:\Users\User\source\repos\LearnAllegro\LearnAllegro\LearnAllegro\LearnAllegro.obunresolved函数void中引用的外部符号\u algif\u get\u位图\u cdecldrawBossstructBoss&,struct ALGIF_ANIMATION*?drawBoss@@YAXAAUBoss@@PAUALGIF_ANIMATION@@@Z了解…我需要添加一些其他包含还是只需要添加以下内容:include ALGIF.h?如果我像这样添加所有包含:include ALGIF.h include ALGIF.c include bitmap.c include gif.c include lzw.c…那么还有一些其他错误:“初始化”:无法从“void*”转换为“ALGIF_BITMAP*”LearnAllegro c:\users\user\source\repos\LearnAllegro\LearnAllegro\BITMAP.c4 ErrorC2440'=”:无法从“void*”转换为“uint8\u t*”LearnAllegro:\users\source\repos\LearnAllegro\LearnAllegro\BITMAP.c7 ErrorC2440”“初始化”:无法从“void*”转换为“ALGIF_动画”* 'RealNaveReal\\RealNeRoGro\SelnReloGro\GIF 69 C“Error C2440 '=”:不能转换为“AlfIFyFrase*”的学习NavaRoC:\\用户\\用户\RePoS\ReleNalRoRo\SelnAlgRoGo\GIF.C158确保将这些文件编译为C而不是C++。