Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Wav In Exe
.:LAVteam:. > Компьютерный форум > Программирование
Neo 2002
Есть ли такая утилита, котороя позволяет к существующей программе добавить звук из Wav файла - и чтобы после этого прога еще и работала! А?
MonK
А ты напиши подробнее - что за программа - есть ли у тебя ее исходники или только exe-файл... В случае если есть и исходники, я могу помочь их переделать так, чтоб ресурсом вставить Вав... Если есть только екзе, можно поступить по-отцовски, и по-нормальному rolleyes.gif отцовский вариант - дизассемблер, нормальный - программы вроде ResHack...
Neo 2002
По отцовски-то умеем - тем самым ResHack-ом! А вот утилу не нашел -
Wav to exe - это ее название!
MonK
Хреново искал - вот стопудово работающий wav to exe
http://nicolaua.uab.es/ftp/convertidores/wav2exe.zip
Посмотри так же вот это (работает через Дельфи)
http://www.delphi-fundgrube.de/files/sndresrc.zip
Neo 2002
Спасибочки! wink.gif
MonK
угу.... Обрашшайтесь ишшо biggrin.gif
Fallcom
Neo 2002
Вообще это можно сделать и программным способом, ручками, как говорится. Просто вставить в ресурс своей программы. Если кому интересно, могу расписать на Delphi пример.
Neo 2002
Напиши, плиз пример, на дельфи! Надо чтобы пока открыта прога играла музыка!
Fallcom
Создаешь пустой файл MyWave.rc пишешь в него одну строку:

Код
MyWave RCDATA LOADONCALL MyWave.wav


Далее в командной строке выполняешь brcc32.exe MyWave.rc, получаешь готовый ресурсный файл MyWave.res. В своей программе пишешь следующее, для включения его в исполняемый модуль программы:

Код
{$R MyWave.res}


При компиляции этот ресурс прилинкуется в EXE и внешний ресурс уже не нужен. Далее, в проекте создаешь процедуру (или пишешь прямо в FormShow):

Код
procedure RetrieveMyWave;
var
 hResource: THandle;
 pData: Pointer;
begin
 hResource:=LoadResource( hInstance, FindResource(hInstance, 'MyWave', RT_RCDATA));
 try
   pData := LockResource(hResource);
   if pData = nil then
 raise Exception.Create('Cannot read MyWave');
   // Здесь pData указывает на MyWave
   // Теперь можно, например, проиграть его (Win32):
   PlaySound('MyWave', 0, SND_MEMORY);
 finally
   FreeResource(hResource);
 end;
end;


Здесь этот файл сначала загружается из ресурса, а затем воспроизводится. Для апишной функции PlaySound нужно подключить модуль MMSystem.

Правда, должен заметить, что для MIDI-файла процедура PlaySound не сработала. Так что для воспроизведения MIDI придется использовать другие функции, вроде midiOutOpen или еще чего.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.