使用SDL库之前需要装载各个子系统,就像要放电影,必须给播放器提供影片一样
装载子系统的函数是
int SDL_Init(Uint32 flags);
flags可取的值如下:
#define SDL_INIT_TIMER 0x00000001 计时器
#define SDL_INIT_AUDIO 0x00000010 音频
#define SDL_INIT_VIDEO 0x00000020 视频
#define SDL_INIT_CDROM 0x00000100 光驱
#define SDL_INIT_JOYSTICK 0x00000200 操纵杆
#define SDL_INIT_EVERYTHING 0x0000FFFF
当然,有时需要判断一个子系统是否加载,对应的函数是
int SDL_WasInit(Uint32 flags);
这里的flags同上
而在退出程序前都必须关掉所有子系统,
相应的函数
void SDL_Quit(void);
这个函数断开所有已装载的子系统,并释放相应的动态链接库和系统资源
官方建议用atexit函数来注册这个函数,让程序结束时自动做清理工作
当然,有时我们可能想中途加入一些子系统,直接用SDL_Init函数又不好,有下面的函数来完成这个功能
int SDL_InitSubSystem(Uint32 flags);
相应的,有卸载单个子系统的函数
上面这些函数返回值都是0代表成功调用,-1代码调用出错
void SDL_QuitSubSystem(Uint32 flags);
最后SDL还提供了自己的错误处理函数
char * SDL_GetError(void);
这个函数将返回错误信息对应的字符串
了解上面这些后,我们便可以开始使用SDL的函数来玩一些东西了,呵呵