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

2016-01-29 12:39 66 1 收藏

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

【 tulaoshi.com - C语言心得技巧 】

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

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

  在最后加入自己的声音资源,如下IDW WAVE "c:kavsoundvirus.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;
}

来源:https://www.tulaoshi.com/n/20160129/1487031.html

延伸阅读
Sam在Android开发中,有两种处理资源文件的方式。其一,是将所有资源文件以及JNI程序放置于一个单独的资源包。使用到他们时,使用文件方式读取。或者直接使用C++层代码读取。 其二,则是将资源文件加入到APK内部。使用各种不同的办法去得到其内容。 方法一:适合于移植较大的C++程序时使用,因为C++代码数量众多,不太可能修改为JAVA代码。所以...
前几天由于编程的需要。要做一个有3D边框的static控件,于是在查考别人做的3DBar的基础上,自己做了一个C3DBar类,现在把它奉献给大家。下面是C3DBar的使用方法。 这个类的使用方法很简单,3DBbar中一共有7个public函数。分别为: void SetBarColour(COLORREF cr); void DrawHorizontal(CDC* pDC, CRect& BarRect); ...
方法一 res/raw目录下存放,比如cwj.dat一个二进制文件,我们可以读取可以直接 代码如下: InputStream is=context.getResources().openRawResource(R.raw.cwj); 方法二 工程根目录下的assets文件夹中存放,比如assets/cwj.dat 这样我们使用下面的代码 代码如下: AssetManager am = context.getAssets(); InputStream is = ...
标签: 电脑入门
要在PPT里加入视频,而且是在PPT放映时自动播放,有点难倒我了,不过这年头最方便的事情就是有百度。不过百度后也未必能完全找到很称心如意的答案。就好比昨天晚上,辛辛苦苦找了一个应该是对的方法,却在依葫芦画瓢的最后一步,硬是没看懂。还好我锲而不舍,不停的百度不停的在PPT中琢磨,功夫不负有心人,终于在十一点三十六分的时候,搞定了...
标签: Web开发
需求:我们的ASP.NET站点需要提供多语言支持,考虑到我们使用的是ASP.NET2.0,我们可以利用资源文件来实现。   NOTE:这里我们使用编程的方法实现,使用其他方法,请参见: http://msdn2.microsoft.com/en-us/library/c6zyy3s9.aspx   接下来我们演示一个简单的例子 Steps:   Step1...

经验教程

576

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部