田小思 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
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式