使用SDL访问冲突

时间:2012-10-28 00:53:34

标签: c++ sdl

我有一个小脚本,用于获取用户的屏幕分辨率并将其分配给变量,但我收到Access Violation错误并且不确定如何修复它(我对这种语言很新)所以希望有人可以告诉我应该如何写它。

这是我的设置:

//get player's screen info
const SDL_VideoInfo* myScreen = SDL_GetVideoInfo();

//SDL screen
SDL_Surface *screen;
int reso_x = myScreen->current_w; //resolution width (ERROR here)
int reso_y = myScreen->current_h; //resolution height
Uint8  video_bpp = 32;
Uint32 videoflags = SDL_SWSURFACE | SDL_DOUBLEBUF | SDL_ANYFORMAT;// | SDL_FULLSCREEN;

/* Initialize the SDL library */
if ( SDL_Init(videoflags) < 0 ) {
     fprintf(stderr, "Couldn't initialize SDL: %s\n",
     SDL_GetError());
     exit(1);
     }

//setup Screen
screen = SDL_SetVideoMode(reso_x, reso_y, video_bpp, videoflags|SDL_FULLSCREEN);

有人知道我的错误原因吗?

1 个答案:

答案 0 :(得分:1)

您不应在SDL_init之前进行任何SDL调用。我的猜测是GetVideoInfo返回null,因为那时你没有处于有效状态。你传递给init的标志也是错误的,它应该是SDL_INIT_VIDEO而不是你想要的那种视频。您的视频标记应该转到SetVideoMode函数。