#include
#include
#include
void ShowBMP(char *filename,SDL_Surface *screen,int x,int y);
void ShowBMP(char *filename,SDL_Surface *screen,int x,int y)
{
SDL_Surface *image;
SDL_Rect dest;
image=SDL_LoadBMP(filename);
if ( image == NULL ) {
fprintf(stderr,"无法加载 %s: %s/n",filename,SDL_GetError());
return;
}
dest.x=x;
dest,y=y;
dest.w=image->w;
dest.h=image->h;
SDL_BlitSurface(image,NULL,screen,&dest);
SDL_UpdateRects(screen,1,&dest);
}
int main()
{
SDL_Surface *screen;
if ( SDL_Init( SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "无法初始化SDL: %s\n", SDL_GetError());
exit(1);
}
screen = SDL_SetVideoMode(640, 480, 16, SDL_SWSURFACE);
if ( screen == NULL ) {
fprintf(stderr, "无法设置640x480x16位色的视频模式:%s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
ShowBMP("test.bmp", screen, 10, 10);
SDL_Delay(10000);
exit(0);
}
[/code]编译的代码是这样的。用#gcc -o show-bmp show-bmp.c `sdl-config--cflags--libs`
会出现图片上的这种情况[attach]28346[/attach]希望高手帮我看看
谢谢了


cuidahui521 于 2009-12-11 11:20:50发表:
不知道
iLinuxer 于 2009-12-05 18:47:16发表:
顶
hantu 于 2009-12-05 00:58:49发表:
应该是还没有安装sdl开发库,如果是Redhat/Fedora之类的系统,要安装*sdl-devel*.rpm这样的软件包,slackware的安装有sdl就行了(它不单独分出开发库),ubuntu的我不太熟悉.
pinla 于 2009-12-05 00:05:55发表:
这个偶不懂