怎么將Wav文件做到EXE文件里
發表時間:2023-07-20 來源:明輝站整理相關軟件相關文章人氣:
[摘要]使用過C++的朋友們都知道,資源在Windows編程里非常重要,合理地運用資源 可以使程序更加靈活。其實在Delphi里,同樣也可以制作資源,只不過Delphi本 身對可視的編程強調很多,對資源的制...
使用過C++的朋友們都知道,資源在Windows編程里非常重要,合理地運用資源
可以使程序更加靈活。其實在Delphi里,同樣也可以制作資源,只不過Delphi本
身對可視的編程強調很多,對資源的制作就沒有多加解釋,也沒有象Borland
C++ 里提供了資源制作工具Resource WorkShop,這些都沒有關系,下面我就通
過將WAV文件做成資源,從而編譯進EXE文件來介紹一下如何利用Delphi本身
提供的工具制作資源。
16位的Delphi 1.0和32位的Delphi2.0、3.0都提供了資源
編譯工具,其中 Delphi 1.0的資源編譯器叫BRCC.EXE,Delphi 2.0的資源編譯器
叫BRCC32.EXE 用來編譯32位資源,所有資源編譯器都只提供了命令行版本,
沒有提供Windows 版本。制作一個資源一般要通過以下幾個步驟:
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 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;
這時候就可以運行了,當然,這只是一個例子,只是提供了調用資源的
一種方法,距離實際應用還有一段距離。愿這個Tip能給大家起個拋磚引
玉的作用。