gpt4 book ai didi

c++ - SDL_LoadBMP 只返回 NULL

转载 作者:太空狗 更新时间:2023-10-29 23:07:14 25 4
gpt4 key购买 nike

我一直在关注 this tutorial ,我已经到了指示我们如何加载和使用位图的地步。这是当前代码:

#include "SDL/SDL.h"
#include <stdlib.h>

int main (int arg, char *argc[]) {
SDL_Surface* screen = NULL;
SDL_Surface* hello = NULL;

SDL_Init(SDL_INIT_EVERYTHING);

screen = SDL_SetVideoMode (256, 256, 32, SDL_SWSURFACE);
hello = SDL_LoadBMP("hello world.png"); // Here
if (hello == NULL) exit(0);

SDL_BlitSurface(hello, NULL, screen, NULL);
SDL_Flip(screen);

SDL_Delay(2000);

SDL_FreeSurface(hello);

SDL_Quit();

return 0;
}

你好,但是,永远不会得到 NULL 以外的任何值。我正在使用 Code::Blocks,即使我将 hello world.png 分散到项目的所有可能目录中(在 bin、obj、Debug 中的任何一个、带有 .cbp 的目录中)或指定整个路径到代码中的图像(如 SDL_LoadBMP("C:\Dir\hello world.png"))你好得到NULL。

我做错了什么?

操作系统是Windows


编辑:好的,显然 SDL_LoadBMP 只能加载 .bmp 文件!我真傻。

最佳答案

编辑:我将 SDL_LoadBMP 与 IMG_Load 混合,这是我的新答案:

您可以使用 SDL Image (包括 SDL_Image.h,链接 SDL_image.lib 并确保您的文件类型的正确 DLL 与您的二进制文件一起使用,如果您需要的话)调用 IMG_Load . IMG_Load 将注意解析您的文件类型并使用适当的加载来创建新的 SDL Surface。完成后记得释放表面。

关于c++ - SDL_LoadBMP 只返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com