闲得没事在想如何写代码播放MP3.google了一遍,发现有人说用 sdl_mixer 最好,还能跨平台.
工作的项目里,好像就整合了 sdl库,gameswf库也是依赖sdl.dll的.然后就决定看看sdl库到底是个啥.
到sdl官方网站,下载了一个SDL-1.2.15 开发版本,有源代码的那种.
里面 VisualC 目录下有个 SDL.sln,里面包含 sdl.vcproj 和 sdlmain.vcproj,可以编译出来 sdl.dll sdl.lib 和 sdlmain.lib.
在 VisualC\tests里有个 tests.sln,里面包含许多工程,每个工程都是一个 独立的可以运行的例子,
只要把刚才编译出来的 sdl.dll 拷贝到工程的位置即可.
这些例子的入口函数都是 int main(int argc,char** argv),可不要它迷惑,它们都是 win32 工程! 不是 console 工程!
真正的入口函数是 sdl库里面的 WinMain!
具体代码还没有仔细看,不知道 sdl是如何封装的.但是那些例子摆在那里,几行代码就能实现各跨平台的小功能,sdl的方便好用是显而易见的.
第2个例子就是播放音乐,一共也没有几行代码.,非常简单.
我还是没有搞明白sdl 与 dx,opengl 之间的关系.
据说 sdl 在 win32 上默认渲染用的是 dx, 也可以通过代码配置为opengl ,sdl的图形部分只是 dx 和 opengl 上一层的封装.不知道这个理解正确不正确.
据说 sdl的 2d 渲染是与 dx 无关的,难道在win32 上直接调用的 gdi ?
看了看公司的项目, 现在在做的这个项目的入口函数,也是像这些 sdl的 sample 一样,从 sdl 的 WinMain 过来的,看来这个 sdl 还是很有学习价值的.
许多都是未知的,先把自己折腾了这1,2小时的简单认识摆在这里做个备忘,
有空应该多去学习.