在Visual C++資源檔中加入聲音資源

來源:互聯網
上載者:User
本文介紹如何在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;
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.