將WAV檔案做到EXE檔案的方法及注意事項 (轉)
將WAVE做到EXE檔案的方法及注意事項
有關這方面的文章很多,本來我也不想多說,可是最近有的網友說他照著有的文章作了個“工程”,可是怎麼也發不出聲來,或者就是揚聲器的BEEP聲。
後來,筆者找到那些資料,照他們的方法也作了一個“工程”;結果和那位網友一樣。這到底是為什麼呢?
先來說說一般的文章是怎麼說的吧。
比較“流行”的說法是:“16位的 1.0和32位的Delphi2.0、3.0都提供了資源
編譯工具,其中 Delphi 1.0的資源叫BRCC.EXE,Delphi 2.0的資源編譯器
叫BRCC32.EXE 用來編譯32位資源,所有資源編譯器都只提供了命令列版本,
沒有提供 版本。製作一個資源一般要透過以下幾個步驟:
1)編寫.RC檔案
..RC檔案是資源的原始檔,編譯器也就編譯這個檔案,生成.RES的
資原始檔
首先在我們的專案子目錄中建立一個純文字檔案,起名叫
Sound.rc,檔案中
有一行,內容為:
SOUND1 WAV SOUND.WAV
其中SOUND.WAV為一個Windows下普通的檔案
2)編譯它
在DOS的提示符下打 BRCC SOUND.RC 嘩啦啦轉一會兒後,就編
譯完了
3)製作
這也是最複雜,最靈活的一步,首先啟動Windows, 再啟動Delphi,
並且將專案
中的檔案儲存到我們的專案中的子目錄中。 在Unit1.pas中找這麼
一行
{$R *.DFM}
把我們的資原始檔就宣告在後面
{$R SOUND.RES}
然後,在Form1中宣告兩個全域性變數
PtrSound : PChar;
hRes : THandle; {handle to the loaded re
if 0 indicates nothing playing}
再在Form1的Create事件中寫下如下程式碼
procedure TForm1.FormCreate(Sender: T);
var hResInfo : THandle;
begin
hResInfo := FindResource(HInstance, 'SOUND1', 'WAVE');
hRes := LoadResource(HInstance, hResInfo);
if hRes > 32 then {its a good load}
begin {lock the resource}
ptrSound:=LockResource(hRes);
end;
end;
然後在Form1中放一個按鈕Button1,寫如下程式碼:
procedure TForm1.Button1Click(Sender: TObject);
begin
sndplaysound(ptrSound,snd_async or snd_Memory);
end;
這時候就可以執行了。”
是真的嗎?
其實,資原始檔的檔名就根本不能和WAVE檔案的一樣,否則,呵呵,揚聲器就要BEEP啦,不信你試試看。
下面筆者寫出可以執行的步驟(當然您的資原始檔不能有錯的):
1)編寫.RC檔案
..RC檔案是資源的原始檔,編譯器也就編譯這個檔案,生成.RES的資原始檔 首先在我們的專案子目錄中建立一個純文字檔案,起名叫
pad.rc ,在檔案中寫一行,內容為://注意!資原始檔名不可以和WAVE檔名一樣的!
SOUND1 WAV SOUND.WAV
其中SOUND.WAV為一個Windows下普通的聲音檔案
2)編譯它
在DOS的提示符下打 BRCC32 PAD.RC 一會兒後,就編譯完了 //現在已是brcc32啦,不知有的文章怎麼還有BRCC??
3)製作程式
在WINDOWS下啟動DELPHI,新建一個專案,將其中的檔案儲存到我們的專案中的子目錄中。 在Unit1.pas中找到
{$R *.DFM}
把我們的資原始檔就宣告在後面
{$R PAD.RES}
然後,在Form1中宣告兩個全域性變數
PtrSound : PChar;
hRes : THandle; {handle to the loaded resource
if 0 indicates nothing playing}
再在Form1的Create事件中寫下如下程式碼
procedure TForm1.FormCreate(Sender: TObject);
var hResInfo : THandle;
begin
hResInfo := FindResource(HInstance, 'SOUND1', 'WAVE');
hRes := LoadResource(HInstance, hResInfo);
if hRes > 32 then {its a good load}
begin {lock the resource}
ptrSound:=LockResource(hRes);
end;
end;
然後在Form1中放一個按鈕Button1,寫如下程式碼:
procedure TForm1.Button1Click(Sender: TObject);
begin
sndplaysound(ptrSound,snd_async or snd_Memory);
end;
點選編譯,執行,再按BUTTON1,可以聽到揚聲器中發出WAVE檔案內容。
這樣,一個小工程就完成了。快試試吧!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988475/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- wav檔案的檔案頭
- 大型WAV檔案的播放 (轉)
- 將Jar檔案製作成exe檔案JAR
- fgets讀取檔案時的注意事項
- php大檔案上傳注意事項PHP
- SpringMvc 檔案上傳注意事項SpringMVC
- EXE檔案結構及讀取方法
- ccc.exe檔案及ccc.exe病毒清除方法
- vue中 靜態檔案引用注意事項Vue
- 如何播放 WAV 檔案?
- 怎樣將class檔案變成.exe檔案?薦
- Python將py檔案編譯為exe的方法Python編譯
- 用IDA匯出map檔案時的注意事項
- Laravel 專案中 PCM 音波檔案轉 WAV 音訊檔案案例【經驗分享】Laravel音訊
- 將檔案轉化為字串的方法字串
- 專案經理注意事項(轉)
- 利用IDEA和exe4j生成exe檔案及資原始檔和so、dll檔案的放置Idea
- Linux中如何刪除檔案?注意事項有哪些?Linux
- Asp.net core 2.0 +SPA檔案上傳注意事項ASP.NET
- .Net上傳檔案處理三大正規化,及開發注意事項
- 【REDO】刪除聯機重做日誌檔案組的注意事項
- 將Schema檔案轉換為Java檔案Java
- 恢復威金病毒感染的EXE檔案小方法(轉)
- jar檔案換成exe檔案問題?JAR
- java呼叫exe檔案Java
- Mac上將dmg檔案轉成iso的方法Mac
- 部署專案注意事項
- Entity Framework 6連線Postgresql、SQLite、LocalDB的注意事項和配置檔案FrameworkSQLite
- 如何將.ipynb檔案轉換為.py檔案
- Win10系統下將excel檔案轉換為dbf檔案的方法Win10Excel
- 用py2exe將python檔案轉換成exe可執行程式Python行程
- WAV音訊檔案按秒切片段音訊
- python 將 CVS檔案轉為HTML檔案PythonHTML
- 【REDO】刪除聯機重做日誌檔案組成員的注意事項
- 將Python程式(.py)轉換為Windows可執行檔案(.exe)PythonWindows
- Matlab生成exe檔案Matlab
- Linux系統檔案型別及檔案的副檔名(轉)Linux型別
- windows10快速批量刪檔案及子檔案的方法Windows