gpt4 book ai didi

c++ - 使用 SDL 的访问冲突

转载 作者:太空宇宙 更新时间:2023-11-04 12:03:32 25 4
gpt4 key购买 nike

我有一个小脚本,用于获取用户的屏幕分辨率并将其分配给一个变量,但我收到了一个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 函数。

关于c++ - 使用 SDL 的访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13105493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com