起因是在做小游戏的时候想给游戏添个音乐,但是dev资料比较凌乱,我尝试了一般的方法没有成功,最后综合了很多方法一起使用最后可以成功运行。
如图:
选种项目里左上角的黄色盾牌,点击打开选择参数,然后在链接的框框里输入(那个easyx不是,是我的绘图),这一步目的是连接dev的库。
-lwinmm
然后很关键的是加入音乐的库
#include <mmsystem.h>
下一步就是带入你的音乐,这个gamover.wav是我的音乐文件(被我放在项目同一个文件夹里所以我用的相对路径,你们用的时候可以选择绝对路径),这个格式只针对wave,mp3音乐文件应该是另一种写法。
mciSendString(TEXT("play gameover.wav"),NULL,0,NULL);
到这一步是网上大部分资料所教的,但是事实上我到这一步根本没能运行音乐,我就开始翻找库的问题,也就是winmm是否出错。
然后我就发现dev和VS(visual stdio)不一样,vs的引用这个winmm是lib后缀的,但是dev里从mingw找进去应该是.a后缀的winmm文件。
如图:
所以那么奇怪的就来了,哪怕我把这个文件直接复制到了MingGW的lib文件夹下,还是没能运行音乐,而电脑一直报错诸如:
D:\c语言代码\final_1\test.c undefined reference to `__imp_mciSendStringA'
然后我就选择继续查资料,就发现有博主解答应该在这里也添加路径
也就是后面两条
-lgdi32 -lwinmm
这样就可以成功运行啦!