Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как создать ресурс с помощю brcc32.exe? [D6, Win95/98]


Delphimun ©   (2001-12-15 13:11:00) 

Мне нужно создать ресурс с wav-ом например с помощю brcc32.exe, а как не знаю


MARcoDEN   (2001-12-15 17:31:00) [1]

Создай файл nn.rc содержащий строчку

CHECK WAV "340.avi"

Затем компилируй с помощью brcc32.exe в ресурс (RES):
brcc32.exe c:\nn.rc
и подключай в программе {$R nn.res}


vasco   (2001-12-15 16:44:00) [2]

Sorry, в первом варианте строчка в .rc файле, видимо, должна выглядеть так:
WAVRES RCDATA myfile.wav
а можно попробовать так:
WAVRES WAVE myfile.wav
Попробуй, поэкспериментируй...


vasco   (2001-12-15 16:41:00) [3]

А вот еще нащел в kuliba1000.chm:

Я пытаюсь проиграть wave-файл при щелчке на кнопке моего Delphi-приложения. Я установил звуковой файл и воспользовался вызовом API функции PlaySound(), но мне хотелось бы поместить его в ресурс приложения, т.е. "вложить" его в EXE-файл и проигрывать его оттуда.
Во первых, вам необходимо скомпилировать необходимый ресурс (например, с помощью Resource Workshop) и включить туда ваш WAVE-файл. Затем для его вызова и проигрывания используйте следующий код:


--------------------------------------------------------------------------------
var FindHandle, ResHandle: THandle;

ResPtr: Pointer;
begin

FindHandle:=FindResource(HInstance, "<Имя вашего ресурса>", "WAVE");
if FindHandle<>0 then begin
ResHandle:=LoadResource(HInstance, FindHandle);
if ResHandle<>0 then begin
ResPtr:=LockResource(ResHandle);
if ResPtr<>Nil then
SndPlaySound(PChar(ResPtr), snd_ASync or snd_Memory);
UnlockResource(ResHandle);
end;
FreeResource(FindHandle);
end;
end;

Спустя некоторое время я нашел лучшее решение (в Delphi 3):



--------------------------------------------------------------------------------
PlaySound("S1", HInstance, SND_RESOURCE or SND_ASYNC);

где S1 - ID (идентификатор) звука.

Эта единственная строчка кода сама ищет, загружает, блокирует, разблокирует и освобождает ресурс.


vasco   (2001-12-15 15:12:00) [4]

Нарисуй .rc файл со строчкой:
WAVRES BINARY myfile.wav
и подключи его к проекту (Add to Project...)
Потом обращаешься к нему с помощью функций FindResource, SizeofResource, LoadResource, на выходе получаешь указатель на массив байт в памяти.
С ним можешь делать, что хочешь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо