田小思 2016-05-05 03:53 采纳率: 100%
浏览 1295

求救,DEV下为什么SDL中可以正常运行但是加载不出图片(图片和源代码在同一文件夹下)

#include"SDL/SDL.h"
#include

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;

SDL_Surface *message = NULL;
SDL_Surface *background = NULL;
SDL_Surface *screen = NULL;

SDL_Surface *load_image(std::string filename)
{
SDL_Surface *loadedImage = NULL;
SDL_Surface *optimizedImage = NULL;

loadedImage = SDL_LoadBMP(filename.c_str());
if(loadedImage!= NULL)
{
    optimizedImage=SDL_DisplayFormat(loadedImage);

    SDL_FreeSurface(loadedImage);
}
return optimizedImage;

}

void apply_surface(int x, int y, SDL_Surface *source, SDL_Surface *destination)
{
SDL_Rect offset;

offset.x=x;
offset.y=y;

SDL_BlitSurface(source, NULL, destination, &offset);

}

int main(int argc, char *args[])
{
if(SDL_Init(SDL_INIT_EVERYTHING)== -1)
{
return 1;

}
screen = SDL_SetVideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP,SDL_SWSURFACE);

if(screen==NULL)
{
    return 1;
    }   
SDL_WM_SetCaption("hello world", NULL);
message=load_image("1.bmp") ;
background=load_image("hello.bmp");

apply_surface(0, 0, background, screen);
apply_surface(320, 0, background, screen);
apply_surface(0, 240, background, screen);
apply_surface(320, 240, background, screen);

apply_surface(180, 140, message, screen);

if(SDL_Flip(screen)== -1)
{
    return 1;
}
SDL_Delay(5000);

SDL_FreeSurface(message);
SDL_FreeSurface(background);
SDL_Quit();


return 0;

}

  • 写回答

2条回答

  • 普通网友 2016-05-05 04:47
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R