将声音文件包入exe文件的方法似乎更理想
建立资源文件 *.rc //*为你建的文件名,下同
内容:名称 WAVE 名称.WAV
用brcc32将*.rc 转为 *.res
在单元{$R *.DFM}的上面加{$*.res}
可在单元过程或函数的任一位置调用播放声音过程。
{播放声音过程为}
procedure MyPlaySound(WavFileName: String;
sndType: Byte);
var
WavFileNameStr: array [0..128] of Char;
PtrSound: PChar;
hRes: THandle;
hResInfo: THandle;
begin
StrPCopy(WavFileNameStr,WavFileName);
hResInfo:=FindResource(HInstance,WavFileNameStr,'WAVE');
hRes:=LoadResource(HInstance, hResInfo);
if hRes>32 then
PtrSound:=LockResource(hRes);
if sndType=0 then
sndPlaySound(PtrSound, snd_Async or snd_Memory);
if sndType=1 then
sndPlaySound(PtrSound, snd_Sync or snd_Memory);
if sndType=2 then
sndPlaySound(PtrSound, snd_Async or snd_Memory or snd_Loop);
if sndType=99 then
sndPlaySound(PtrSound, 0);
end;