zoukankan      html  css  js  c++  java
  • 在VC资源文件中加入声音资源

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

  • 相关阅读:
    SpringBoot-容器启动的时候执行一些内容
    Java JVM 启动参数
    leecode刷题(9)-- 有效的数独
    leecode刷题(8)-- 两数之和
    leecode刷题(7)-- 加一
    leecode刷题(6)-- 两个数组的交集II
    leecode刷题(5)-- 只出现一次的数字
    leecode刷题(4)-- 存在重复数组
    leecode刷题(3)-- 旋转数组
    leecode刷题(2)-- 买卖股票的最佳时机
  • 原文地址:https://www.cnblogs.com/lidabo/p/3703534.html
Copyright © 2011-2022 走看看