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

130 篇文章 0 订阅
18 篇文章 0 订阅
 本文介绍如何在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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值