將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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- php大檔案上傳注意事項PHP
- EXE檔案結構及讀取方法
- vue中 靜態檔案引用注意事項Vue
- Python將py檔案編譯為exe的方法Python編譯
- Laravel 專案中 PCM 音波檔案轉 WAV 音訊檔案案例【經驗分享】Laravel音訊
- Linux中如何刪除檔案?注意事項有哪些?Linux
- python 將 CVS檔案轉為HTML檔案PythonHTML
- .Net上傳檔案處理三大正規化,及開發注意事項
- 如何將.ipynb檔案轉換為.py檔案
- 如何將BigWig 檔案轉化為 bed 檔案
- Mac上將dmg檔案轉成iso的方法Mac
- Win10系統下將excel檔案轉換為dbf檔案的方法Win10Excel
- 將ASD光譜儀的.asd檔案轉為文字檔案
- bat批處理轉換成exe檔案BAT
- 部署專案注意事項
- PDF檔案轉HTML方法HTML
- WAV音訊檔案按秒切片段音訊
- 阿里雲初次備案全流程及注意事項阿里
- windows10快速批量刪檔案及子檔案的方法Windows
- Matlab生成.exe格式檔案Matlab
- GBFF檔案轉GFF檔案
- VUE打包後配置配置檔案修改請求url方法及webpack打包的檔案生成同名檔案方法VueWeb
- 取證中exe檔案的分析
- 使用pyinstaller打包exe檔案教程
- pyinstaller打包python成.exe檔案Python
- Python教程:一篇檔案教你py檔案打包成exePython
- aspose word轉換pdf檔案後將pdf檔案轉換為圖片png
- 將自己的python程式碼打包成exe的可執行檔案Python
- PDF檔案轉換為DWF檔案
- chm檔案怎麼轉換成TXT格式?chm檔案快速轉化成TXT格式的方法
- 基於檔案語義實現S3介面語義的注意事項S3
- 使用PyInstaller打包檔案為exe程式
- 將bmp檔案壓縮為jpg檔案
- PDF轉文字檔案的最簡單方法
- 【ASM】ASM資料檔案和OS檔案(FILESYSTEM)轉移方法總結ASM
- ERP選型準備、方法及注意事項
- Python 打包 windows 可執行的 exe 檔案PythonWindows
- 把 .xyz 檔案轉換成 .ply 檔案
- pyinstaller 打包 exe 程式步驟和新增依賴檔案方法