Delphi FAQ - Можно ли сделать так, чтобы в исполняемом файле программы находился какой-нибудь звук в формате .wav

ОГЛАВЛЕНИЕ


Можно ли сделать так, чтобы в исполняемом файле программы находился какой-нибудь звук в формате .wav

Можно ли сделать так, чтобы в исполняемом файле программы находился
какой-нибудь звук в формате .wav, и можно было бы проиграть этот звук?

В файл MyWave.rc пишешь:

MyWave RCDATA LOADONCALL MyWave.wav

brcc32.exe MyWave.rc, получаешь MyWave.res.

В своей программе пишешь:

{$R MyWave.res}

Все!

Предупреждая следующий твой вопрос "а как прочитать wave-файл из
исполняемого файла?"
procedure RetrieveMyWave;
var
  hResource: THandle;
  pData: Pointer;
begin
  hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave',
RT_RCDA
TA));
  try
    pData := LockResource(hResource);
    if pData = nil then
      raise Exception.Create('Cannot read MyWave');
    // Здесь pData указывает на MyWave
    // Теперь можно, например, проиграть его (Win32):
    PlaySound(pData, 0, SND_MEMORY);
  finally
    FreeResource(hResource);
  end;
end;

+++++++++++++++++++++++++++++++++

PlaySound('RESNAME', 0, SND_MEMORY or SND_RESOURCE);
Anatoly Podgoretsky