c程序插入背景音乐(复制到他人电脑也能使用)
2016-09-25 18:00
453 查看
插入音乐就不多说了,用playsound函数。关键问题是playsound函数只能播放指定路径的函数,如果程序复制到他人电脑,并且他人电脑没有音乐资源,那就无法播放音乐了。
顺着这个思路,寻思着C语言有没有获取当前进程路径的方法,百度了一下还真有。_pgmptr,就是获取当前exe的关键字,当然你可以把它打印出来看看。这样你就可以把音乐资源和源代码打包在一起,先用_pgmptr读取当前exe的路径,然后再运用指针定位到音乐的路径。
下面上代码:
顺着这个思路,寻思着C语言有没有获取当前进程路径的方法,百度了一下还真有。_pgmptr,就是获取当前exe的关键字,当然你可以把它打印出来看看。这样你就可以把音乐资源和源代码打包在一起,先用_pgmptr读取当前exe的路径,然后再运用指针定位到音乐的路径。
下面上代码:
<span style="color:#cc0000;">//.............say something\Debug\say something.exe"; 进程路径 //.............say something\say something\2.wav" 音乐资源路径 </span><span style="color:#33ff33;"> </span><span style="color:#333333;">char path[100] = { 0 }; //定义一个数组存放路径 sprintf(path, "%s", _pgmptr); //获取当前.exe路径 并存入path char *padd = "g\\say something\\2.wav"; //我这里音乐放在源文件目录 所以需要退到 源文件目录 增加路径 char *p = path; //循环路径的每一个字符 int sum = 0; //记录'\'的位置 while (*p != '\0') { p++; } //将指针移动到路径尾部 for (p; sum < 2; p--) //往回移动到倒数第二个'\' { if (*p == '\\') { sum++; } } *p = '\0'; //删除倒数第二个'\'之后的所有字符 即退回到工程目录 strcat(p, padd); //拼接路径 char *p2 = path; PlaySound(p2, NULL, SND_ASYNC | SND_NODEFAULT | SND_LOOP); //循环播放 </span>
相关文章推荐
- 使用 SqlBulkCopy 大量复制文字文件之 C# 程序代码
- 复制数据库时,必须要先停止Sql Server服务,才能复制.否则提示:无法复制,文件正在被另一个人或程序使用.
- VC DataGrid使用问题,在其它电脑上,应用数据程序弹出“未成功配置,应用程序无法启动”
- 在iTunes上下载的正版程序复制到另一台电脑上去
- 对着电脑吼一声,自动打开谷歌网站或者自动打开命令行终端--使用google speech 语音识别程序操作电脑
- 请求帮助:如何解决烦人的VS.NET2003编译时“无法将程序集复制到文件,另一个程序正在使用,进程无法访问”的问题?
- Win7系统中如何将自己电脑上的打印机共享给他人使用?
- 程序在他人电脑上报缺失msvcr100d.dll 处理(转)
- Android 指定SD卡上一首歌作为程序的背景音乐(进阶篇之PreferenceActivity的使用)
- 使用飞信VMDotNet使C#程序脱离.NET FRAMEWORK也能运行的一些心得 ------(我复制别个的)
- 使用 SqlBulkCopy 大量复制文字文件之 C# 程序代码
- C#:当把U盘放插入,然后程序自动将U盘的内容复制到本地硬盘
- 复制并正确使用csdn文章中使用“插入代码”插入的代码
- 如何在大多数文字编辑器中(包括word和一些程序编辑器中)不要使用鼠标(即用快捷键)复制上一行到下一行
- 使用平板电脑真实设备调试Qt-Creator写的程序
- 使用飞信VMDotNet使C#程序脱离.NET FRAMEWORK也能运行的一些心得 ------(我复制别个的)
- 查看本地电脑的端口及对应的使用程序
- 使用Python开发Android应用程序:第三节 在电脑上编写程序在手机上运行
- 在没有jmf的电脑上安装使用jmf的程序
- Qt的程序在其他电脑上使用