明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

怎么將Wav文件做到EXE文件里

[摘要]使用過(guò)C++的朋友們都知道,資源在Windows編程里非常重要,合理地運(yùn)用資源 可以使程序更加靈活。其實(shí)在Delphi里,同樣也可以制作資源,只不過(guò)Delphi本 身對(duì)可視的編程強(qiáng)調(diào)很多,對(duì)資源的制...
使用過(guò)C++的朋友們都知道,資源在Windows編程里非常重要,合理地運(yùn)用資源
可以使程序更加靈活。其實(shí)在Delphi里,同樣也可以制作資源,只不過(guò)Delphi本
身對(duì)可視的編程強(qiáng)調(diào)很多,對(duì)資源的制作就沒(méi)有多加解釋,也沒(méi)有象Borland
C++ 里提供了資源制作工具Resource WorkShop,這些都沒(méi)有關(guān)系,下面我就通
過(guò)將WAV文件做成資源,從而編譯進(jìn)EXE文件來(lái)介紹一下如何利用Delphi本身
提供的工具制作資源。


16位的Delphi 1.0和32位的Delphi2.0、3.0都提供了資源
編譯工具,其中 Delphi 1.0的資源編譯器叫BRCC.EXE,Delphi 2.0的資源編譯器
叫BRCC32.EXE 用來(lái)編譯32位資源,所有資源編譯器都只提供了命令行版本,
沒(méi)有提供Windows 版本。制作一個(gè)資源一般要通過(guò)以下幾個(gè)步驟:


1)編寫.RC文件


..RC文件是資源的源文件,編譯器也就編譯這個(gè)文件,生成.RES的資源文件
首先在我們的項(xiàng)目子目錄中建立一個(gè)純文本文件,起名叫Sound.rc,文件中
有一行,內(nèi)容為:


SOUND1 WAV SOUND.WAV


其中SOUND.WAV為一個(gè)Windows下普通的聲音文件


2)編譯它


在DOS的提示符下打 BRCC SOUND.RC 硬盤嘩啦啦轉(zhuǎn)一會(huì)兒后,就編譯完了


3)制作程序


這也是最復(fù)雜,最靈活的一步,首先啟動(dòng)Windows, 再啟動(dòng)Delphi, 并且將項(xiàng)目
中的文件保存到我們的項(xiàng)目中的子目錄中。 在Unit1.pas中找這么一行


{$R *.DFM}


把我們的資源文件就聲明在后面


{$R SOUND.RES}


然后,在Form1中聲明兩個(gè)全局變量


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中放一個(gè)按鈕Button1,寫如下代碼:


procedure TForm1.Button1Click(Sender: TObject);
begin
sndplaysound(ptrSound,snd_async or snd_Memory);
end;
這時(shí)候就可以運(yùn)行了,當(dāng)然,這只是一個(gè)例子,只是提供了調(diào)用資源的
一種方法,距離實(shí)際應(yīng)用還有一段距離。愿這個(gè)Tip能給大家起個(gè)拋磚引
玉的作用。