在VC资源文件中加入声音资源

简介: 本文介绍如何在VC资源文件中加入自己的声音资源,使自己的应用程序可以播放声音。  1、首先用文本编辑器(如记事本)打开资源文件(.rc文件)  在最后加入自己的声音资源,如下IDW WAVE "c:\\kav\\sound\\virus.wav"  保存资源文件。

本文介绍如何在VC资源文件中加入自己的声音资源,使自己的应用程序可以播放声音。

  1、首先用文本编辑器(如记事本)打开资源文件(.rc文件)

  在最后加入自己的声音资源,如下IDW WAVE "c:\\kav\\sound\\virus.wav"

  保存资源文件。 
  2、在应用程序中要播放声音的地方启动另一线程,用来播放声音:

AfxBeginThread((AFX_THREADPROC)sound,NULL,THREAD_PRIORITY_NORMAL);
  3、添加线程回调函数

  这里介绍加载资源的方法。首先用函数AfxGetInstanceHandle()获得实例的句柄,其次用函数FindResource找到自己的声音资源。

HRSRC FindResource(
 HMODULE hModule, // module handle
 LPCTSTR lpName, // resource name
 LPCTSTR lpType // resource type
)

  找到声音资源后,要用LoadResource加入该资源

HGLOBAL LoadResource(
 HMODULE hModule, // module handle
 HRSRC hResInfo // resource handle
);

  最后锁定资源内存块,并返回所标定内存块的虚拟内存地址。如果该资源被成功锁定的话,则返回值指向该资源开始处的第一个字节:

LPVOID pv=LockResource() 
  注意:若上述四步中的任何一步发生问题,则返回并释放相应的内存。接下去要做的事情就是根据文件数据类型进行数据加载。 

UINT CPlaySoundView::sound(LPVOID pParam)
{
 HINSTANCE h=AfxGetInstanceHandle();
 HRSRC hr=FindResource(h,"IDW","WAVE");
 HGLOBAL hg=LoadResource(h,hr);
 LPSTR lp=(LPSTR)LockResource(hg);
 sndPlaySound(lp,SND_MEMORY|SND_SYNC);
 FreeResource(hg);
 return 0;
}

目录
相关文章
|
开发工具 图形学 git
Unity 之 加载工程卡在音频处不动(Unity识别不出音频文件)
在Git上克隆同事上传的工程,打开是卡在音频处不动解决方案分享。
753 0
Unity 之 加载工程卡在音频处不动(Unity识别不出音频文件)
|
缓存 API 开发工具
Unity——工程与资源
Unity——工程与资源
235 1
|
存储 缓存 API
5.0版本之后的AssetBundle资源的打包和解析加载(Unity3D)
这几天在研究AssetBundle资源打包盒解析加载,也踩过很多坑,参考过很多人的文章 发现很多人关于AssetBundle的文章不是API过时了不能用,就是有点乱 也不是有点乱,就是摸不着头脑,让人不能快速的get到这个东西如何使用 所以我特意在踩过坑之后把我这个学到的经验分享给大家。
|
Java Shell Android开发
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(1)
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(1)
586 0
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(1)
|
缓存 机器人 Android开发
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(2)
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(2)
178 0
Android插件化开发之用DexClassLoader加载未安装的APK资源文件来实现app切换背景皮肤(2)
|
编解码 监控 图形学
unity设置程序
unity设置程序 Application.runInBackground 后台运行 Application.dataPath 数据路径 Application.persistentDataPath 持久数据路径 Application.
1021 0
|
图形学 UED
Unity打包/读取AssetBundle资源全教程
Unity 资源AssetBundle打包 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chi...
2216 0
|
Web App开发 图形学