热门关键字:   网站安全  黑客攻防  安全漏洞  系统安全  网络安全
站外
广告
域名申请虚拟主机 信息安全 域名注册 云主机 网络安全技术 企业网络安全 站外
广告
文字广告位招租 文字广告位招租 文字广告位招租 文字广告位招租 云安全

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

发布时间:2010-10-28 11:16文章来源:网络文章作者:秩名 点击次数:
摘要:文介绍如何在VC资源文件中加入自己的声音资源,使自己的应用程序可以播放声音。 1,首先用文本编辑器(如记事本)打开资源文件(.rc文件) 在最后加入自己的声音资源,如下 IDW WAVE c:\\kav\\sound\\virus.wav 保存资源文件。 2,在应用程序中要播放声音的地...

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

  }

 

标签分类: VC

上一篇:VC++实现隐藏你的鼠标
下一篇:UDP协议实现广播通信