我有一个小脚本,该脚本旨在获取用户的屏幕分辨率并将其分配给变量,但是我收到了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);
有人知道我的错误原因吗?
最佳答案
在SDL_init之前,您不应进行任何SDL调用。我的猜测是GetVideoInfo返回null,因为此时您尚未处于有效状态。另外,您传递给init的标志是错误的,应该是SDL_INIT_VIDEO,而不是您想要的视频类型。您的视频标志应转到SetVideoMode函数。