SDL2学习笔记(一):SDL2初步

article/2025/10/12 0:22:21

一、Windows系统下的安装

  1. MinGW
    ①安装MinGW并配置好环境变量;
    ②官网下载SDL for MinGW;
    ③将解压文件中的 .\i686-w64-mingw32\include\SDL2 复制到 .\MinGW\include ; //有的设备需要用x86_64-w64-mingw32中的文件,下同
    ④将解压文件中的 .\i686-w64-mingw32\lib中的 .a 和 .la 们全都复制到 .\MinGW\lib 下面;
    ⑤将解压文件中的 .\i686-w64-mingw32\bin\SDL.dll 复制到源文件所在文件夹;
    ⑥编辑文件并编译,编译命令如下:

gcc [filename] (-o [output]) -lmingw32 -lSDL2main -SDL2

这里我是将它写成了 .bat 文件,即Windows批处理脚本,内容如下:

cmd /c gcc %1 -o %2 -lmingw32 -lSDL2main -lSDL2

当我们在控制台编译时,只需要像这样就可以啦( gccsdl 是我写的 .bat 文件):

gccsdl HelloSDL.c HelloSDL.exe

有一个点需要注意一下,在SDL.h中有如下宏定义:

#if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE)
#define main SDL_main
#endifint SDL_main(int argc, char **argv)

main()函数的标准写法只有两个:int main(void);int main(int argc, char *argv[]);,这里可以看到SDL要求我们必须写成第二种。(亲身试验,写第一种会报错)

  1. VS & VC
    我还没搞得定嘿嘿嘿以后再来

二、基本的函数

  1. SDL初始化
/* SDL初始化函数 */
int SDL_Init(Uint32 flags);
/********************************************其中flags为欲初始化的位标,一般有如下几种:SDL_INIT_TIMER (定时器)SDL_INIT_AUDIO (音频)SDL_INIT_VIDEO (视频)SDL_INIT_JOYSTICK (摇杆)SDL_INIT_HAPTIC (触摸屏)SDL_INIT_GAMECONTROLLER (游戏控制器)SDL_INIT_EVENTS (事件)SDL_INIT_NOPARACHUTE (不捕获关键信号(?))SDL_INIT_EVERYTHING (包含上述所有选项)
********************************************/
  1. SDL退出
/* SDL退出函數 */
void SDL_Quit(void);
/*****************************************************************我們來看看官方對这个函数的描述:“This function cleans up all initialized subsystems. You shouldcall it upon all exit conditions.”(这个函数清除所有初始化的子系统。您应该在所有退出条件下调用它。)实际上就是跟EasyX的closegraph()差不多的感觉嘛。
******************************************************************/
  1. 检测是否已初始化
/* 检测是否已经完成了初始化 */
Uint32 SDL_WasInit(Uint32 flags);
/*********************************************************************还是看官方注释:“This function returns a mask of the specified subsystems which have
previously been initialized.”(这个函数返回先前已经初始化的指定子系统的掩码。)“If \c flags is 0, it returns a mask of all initialized subsystems.”(如果\c标志为0,则返回所有初始化子系统的掩码。)(这个\c是个啥玩意?)
**********************************************************************/
  1. 中途的装载
/* 中途的装载 */
int SDL_InitSubSystem(Uint32 flags);
/*******************************************这个很简单就不看官方注释了,就是在SDL_Init()之后还想要装载东西用的函数。
********************************************/
  1. 中途的退出
/* 同上,有中途装载就有中途退出嘛 */
void SDL_QuitSubSystem(Uint32 flags);
  1. 错误信息报告
/* SDL错误信息报告 */
const char * SDL_GetError(void);
/* 写入错误 */
int SDL_SetError(const char *fmt, ...);
/* 清除错误 */
void SDL_ClearError(void);

好,你看到这里我都水了2139个字了。最基础的部分到此结束,那我们下期精彩继续。
这就是水王


http://chatgpt.dhexx.cn/article/YZvhGAsC.shtml

相关文章

ISCC2021—ISCC客服一号冲冲冲(二)

ISCC客服一号冲冲冲(二) 呦,又见面了,狗子 打开链接,发现登录接口似乎是个图片截了一块啊,把图片下载下来,lsp隐写发现源代码,同时php弱比较登录页面 (都看到这里啦&a…

ISCC2021——web部分

练武 ISCC客服冲冲冲(一) 该题目需要左边的客服票数高于右边的 我会的就两种方法,毕竟是废物嘛,允许 1、 把左右按钮换一下 然后就 2、在控制台输入 回车,走你 你涨啊,涨啊,接着涨啊…没吃…

ISCC,Misc:隐秘的信息

解码得到解压密码 解压出一张图,低位时头部显示有一串字符被 f f f f f 包裹,将可疑的字符单独拿出来 由于单个字符可能是由二进制错位导致的 fffffa4a9a1a1bd9 9b7a1a9ba34b127a 0b8abbc20b7a2b7a 2b524b43e9f8007f fffc7e3fe00fff00 71fffffffffffff…

ISCC理论题小解

B 域、工作组和家庭组表示在网络中组织计算机的不同方法。它们之间的主要区别是对网络中的计算机和其他资源的管理方式。 网络中运行 Windows 的计算机必须属于某个工作组或某个域。家庭网络中运行 Windows 的计算机也可以属于某个家庭组,但这不是必需的。 家庭网络…

ISCC web4

ISCC web4 打开网页看到: 代码审计。。。。。。。。。 一开始以为是sha256解密,结果半天搞不出来 后来才知道parse_url函数存在变量覆盖漏洞 因为要存在action参数,传入actionauth key也要传入key0 由于key是要被sha256加密的 传入一个has…

ISCC2022 擂台misc

文章目录 666扫!弱雪真扫黑暗森林PNGstego这是压缩包吗?小 数 学习了 P.S:抬杠就是你对 666 考查知识点:伪加密、猜谜的steghide弱口令爆破、流量分析、gif帧、键盘密码、AES 下载下来是一个压缩包,但是图片显示需要密码&#xf…

ISCC-2022 部分wp

目录 Web冬奥会解题步骤详细描述解题收获 Easy_sql解题步骤详细描述解题收获 Pop2022解题步骤详细描述解题收获 findme解题步骤详细描述 爱国敬业好青年-2解题步骤详细描述解题收获 这是一道代码审计题 Misc单板小将苏翊鸣解题步骤详细描述解题收获 2022冬奥会解题步骤详细描述…

ISCC——部分题wp

练武场 WEB: ISCC客服冲冲冲(一) 知识点: js解密 解题思路: 1.打开后出现投票的页面 2.查看源码 发现可疑的function.js 3.function.js,js加密 var _0xodqjsjiami.com.v6,_0x3e40[_0xodq,\x77\x35\x4c\x…

ISCC ISCC客服一号冲冲冲(二)

这个题其实是转自Bugku的Login4 (CBC字节翻转攻击) 题目有提示密码就是web1 的flag 然后登入 这里有回显,然后我们换一下 下面cookie里的iv和cipher看着就像CBC加密的方式 利用的就是CBC解密的特点:前16个密文字符用来解密接下来的一组16个密文&#…

ISCC 2021 SSTI

文章目录 FUZZ测试:了解一下SSTI常用的语句格式:说一下构造思路:构造题外话:(反转结果字符串) 再ISCC中遇到了一道SSTI的题目,拿来练练手,题目难度的化,相对于普遍的过滤…

[ISCC 2021]部分wp

文章目录 海市蜃楼-1Retrieve the passcode我的折扣是多少小明的表情包Hack the Victim美人计李华的红包小明的宠物兔ISCC客服冲冲冲(一)这是啥Web01登录tornadowhich is the true isccISCC客服一号冲冲冲(二)Explore Rubylovely …

ISCC-WP

练武wp: MISC 2022冬奥会 图片在kali中,没有显示缩略图,其宽高很可能被修改过 修改图片的长之后,下面出些一些&#x编码,这是html实体编码。进行unicode解码得到 冰敦敦的小伙伴经常被人冷落,你知道他的原型是什…

ISCC认证的申请条件是什么?

ISCC国际可持续发展和碳认证介绍 ISCC - International Sustainability & Carbon Certification 国际可持续发展和碳认证,是满足欧盟《可再生能源指令》(2009/28/ECRED)的第一个标准,于2010年开始实施,现已发展成为…

ISCC 2022 部分

目录 web冬奥会popfindme爱国敬业好青年-2Easy-SQL让我康康&#xff01;这是一道代码审计题 MISC隐秘的信息真相只有一个单板小将苏翊鸣藏在星空中的诗-1藏在星空中的诗-22022冬奥会降维打击 REVERSEGetTheTableBobs Code web 冬奥会 <?phpshow_source(__FILE__);$Step1F…

ISCC 2022 wp

目录 解题步骤及过程&#xff1a; 练武题WP&#xff1a; Web: 冬奥会&#xff1a; 爱国敬业好青年-2&#xff1a; Pop2022&#xff1a; 这是一道代码审计题&#xff1a; Easy-SQL&#xff1a; Findme&#xff1a; 让我康康!&#xff1a; misc&#xff1a; 2022冬奥…

ISCC-2021

文章目录 一、ISCC客服冲冲冲&#xff08;一&#xff09;二、这是啥三、Web01四、ISCC客服一号冲冲冲&#xff08;二&#xff09;五、登录六、which is the true iscc 一、ISCC客服冲冲冲&#xff08;一&#xff09; 可以下载一个点击器&#xff0c;或者直接F12在html中改&…

ISCC 2021 WP

文章目录 MISC李华的红包Retrieve the passcode海市蜃楼-1美人计我的折扣是多少区块链Hack the Victim检查一下小明的宠物兔变异的SM2 WEBISCC客服冲冲冲&#xff08;一&#xff09;这是啥Web01ISCC客服一号冲冲冲&#xff08;二&#xff09;登录which is the true iscclovely …

2021-ISCC

webweb01-ISCC客服冲冲冲&#xff08;一&#xff09;web02-这是啥web3-web01 MISCMISC01-Retrieve the passcodeMISC02-我的折扣是多少MISC03-海市蜃楼-1MISC04-美人计MISC05-检查一下 web web01-ISCC客服冲冲冲&#xff08;一&#xff09; 1.写个脚本&#xff08;不会&#x…

ISCC 2022

PWN 跳一跳&#xff08;未写完 程序流程较为简单&#xff0c;发现为64位全保护开启的ELF文件&#xff1b; sim_treasure 简单的32位循环格式化字符串漏洞&#xff0c;位于栈上&#xff0c;无过滤\x00&#xff1b;且对于got表无防护&#xff0c;故利用格式化字符串漏洞对地址…

ISCC-2022

ISCC-2022 本文首发于奇安信攻防社区 注&#xff1a;本文所做题目时间和复现时间不一致&#xff0c;按照主办方每天中午更新flag&#xff0c;或许有不同 练武 MISC 单板小将苏翊鸣 下载附件得到压缩包和图片 修改高度 扫码得到 所以密码为15942 得到 ISCC{beij-dbxj-2…