gpt4 book ai didi

c++ - SDL2 Hello World 教程因错误而关闭

转载 作者:行者123 更新时间:2023-11-28 02:50:15 26 4
gpt4 key购买 nike

我正在 Windows 8.1 机器上使用 VS2013 进行开发。窗口在屏幕上短暂闪烁(尽管代码有 2 秒的延迟)。

所有代码如下:

#include <SDL.h>
#include <iostream>

int main(int argc, char **argv)
{
if (SDL_Init(SDL_INIT_EVERYTHING) != 0){
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 4;
}

//open a window
SDL_Window *win = SDL_CreateWindow("Hello World!", 100, 100, 640, 480, SDL_WINDOW_SHOWN);
if (win == nullptr){
std::cout << "SDL_CreateWindow Error: " << SDL_GetError() << std::endl;
return 3;
}

//renderer
SDL_Renderer *ren = SDL_CreateRenderer(win, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (ren == nullptr){
std::cout << "SDL_CreateRenderer Error: " << SDL_GetError() << std::endl;
return 2;
}

//load bitmap
SDL_Surface *bmp = SDL_LoadBMP("helloworld.jpg");
if (bmp == nullptr){
std::cout << "SDL_LoadBMP Error: " << SDL_GetError() << std::endl;
return 6;
}

SDL_Texture *tex = SDL_CreateTextureFromSurface(ren, bmp);
SDL_FreeSurface(bmp);
if (tex == nullptr){
std::cout << "SDL_CreateTextureFromSurface Error: " << SDL_GetError() << std::endl;
return 5;
}

SDL_RenderClear(ren);
SDL_RenderCopy(ren, tex, NULL, NULL);
SDL_RenderPresent(ren);

SDL_Delay(2000);


return 0;
}

它以代码 6 退出。我以为它找不到 helloworld.jpg 文件。但是,它在那里。我把它从一个地方搬到另一个地方,希望我只是个白痴。没有运气。它当前与 .exe 文件位于同一目录中。

最佳答案

SDL_LoadBMP 只会加载 BMP 格式的图片,根据您选择的扩展名猜测您使用的是 JPEG 格式的图像,而您的程序拒绝加载它。

参见 SDL_Image寻找一种可能的解决方案。

关于c++ - SDL2 Hello World 教程因错误而关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23229375/

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