c - 程序启动时出现 SDL_CeateWindow 错误
问题描述
下面的代码初始化一个 SDL 窗口。由于错误,我找不到SDL_CreateWindow()
return NULL
。
int xwin_init(int w, int h)
{
int r;
r = SDL_Init(SDL_INIT_VIDEO);
assert(win == NULL);
win = SDL_CreateWindow("PRG Semester Project",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED, w, h,SDL_WINDOW_SHOWN);
SDL_SetWindowTitle(win, "PRG SEM");
SDL_Surface *surface = SDL_CreateRGBSurfaceFrom(icon_32x32_bits,32, 32, 24, 32*3, 0xff, 0xff00,0xff0000, 0x0000);
SDL_SetWindowIcon(win, surface);
SDL_FreeSurface(surface);
return r;
}
错误消息如下所示:
prgsem: xwin_sdl.c:58: xwin_init: Assertion win != NULL' failed`
解决方案
虽然我不能告诉你你的问题是什么,但至少在初始化视频和创建窗口之后检查错误是值得的。您可以使用SDL_GetError来执行此操作。通过此函数可以访问有关通过 SDL 库报告的错误的消息,并且您可以根据其他 SDL 函数的返回码(例如SDL_Init
在您的示例中)来判断何时调用它。
推荐阅读
- driver - SV:程序驱动程序的错误合法组合
- php - 问题:从同一本地网络中的 Mac 登录本地服务器上的 mariadb 数据库
- python - 需要在前端的数据库中使用 Python 和 Selenium 停用用户,但参考过时
- java - 无法通过双击打开可执行 Jar 文件
- angular - 如何在 Angular 中检测 mat-stepper 的开始和结束?
- xml - XML - 如何决定是否将相同的节点放在父节点中
- java - 如何对具有不同方法名称但返回类型相同的不同对象应用相同的过程
- node.js - How to add limit options while fetching data from bigTable ? Can someone give me the proper syntax to do so in NodeJS
- javascript - 如何在反应js中操作字符串变量
- java - Spring:控制器中的这个字段是如何注入的?