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

王朝vc·作者佚名  2006-01-17
窄屏简体版  字體: |||超大  

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

作者:浙江大学 王向伟

下载本文示例代码

本文介绍如何在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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航