Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.60/42: Рейтинг темы: голосов - 42, средняя оценка - 4.60
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249

Как засунуть звук в exeшник

17.05.2009, 00:05. Показов 8935. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ув.программисты как можно засунуть музыку в exeшник.можно через медиаплеер с компьютера подгружать но это надо чтобы фаил был на компьютере.а вот как сделать чтобы она была в самом exeшнике?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2009, 00:05
Ответы с готовыми решениями:

Как в dll засунуть иконки?
Доброго всем времени суток!!! Подскажите пожалуйста, как можно в dll засунуть иконки, dll с поддержкой vcl, но иконки надо использовать...

Как засунуть объекты в PageControl?
У меня имеется два спид-батона "создание текстового документа"(в Memo) и "создание таблицы"(в StringGrid) и PageControl. Как бы мне...

Как засунуть программу в треи (АПИ!)?
Привет всем. Ето код который я покалдовал :D HINSTANCE hInst = (HINSTANCE) GetClassLong(Handle,GCL_HMODULE); HICON hIcon...

26
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
17.05.2009, 00:10
в ресурс запихни, и подлкючи к проекту.
0
 Аватар для KoFeMaH
38 / 24 / 4
Регистрация: 21.02.2009
Сообщений: 249
17.05.2009, 00:14  [ТС]
а как его в ресурс запихнуть?извините если глупые вещи спрашиваю просто никогда этого не делал
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
17.05.2009, 00:29
создаешь *.rc файл, примерно следующего содержания:
1 RCDATA "music.mp3"
в каталог с этим файлом переносишь music.mp3
после чего прогоняешь (открываешь с помощью) этот файл через brcc32.exe (лежи в папке билдера в каталоге bin)

Добавлено через 2 минуты 29 секунд
чуть не забыл... на выходе получаешь файл *.res.. перемещаешь его в каталог с проектом, и в .cpp файле прописываешь:

#pragma resource "*.res"
2
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
17.05.2009, 17:42
Monte-Cristo, а как вызвать эти вшитые файлы, или перевести в TResourceStream, напишите пожалуйста пример с произведением этого музыкального файла...
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
17.05.2009, 18:33
как проигрывать музыку прямо из ресурса -я не знаю.. никогда не задовался этой целью.. но можете врмено сохранять ее на жд, и проигрывать...

C++
1
2
3
    TResourceStream *res = new TResourceStream(0,1, RT_RCDATA);
    res->SaveToFile("z.mp3");
    res->Free();
Добавлено через 1 минуту 13 секунд
C++
1
TResourceStream *res = new TResourceStream(0,1, RT_RCDATA);
1 сдесь, это порядковый номер в ресурсе.. т.е.

1 RCDATA "music.mp3"
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
18.05.2009, 02:25
Сделал, все как написано было, экзешник "вспух" ровно на сколько и файл который в него был вложен.
А вот, чтобы считать...
C++
1
TResourceStream *res = new TResourceStream(0,1,RT_RCDATA);
[BCC32 Error] Unit4.cpp(35): E2285 Could not find a match for 'TResourceStream::TResourceStream(int,in t,char *)'
Сделал так:
C++
1
TResourceStream *res = new TResourceStream(0,1,(wchar_t*)RT_RCDATA);
запустилось, но потом появилась ошибка:
"Resource 1 not found"
Вот даже не знаю, что делать(
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
18.05.2009, 09:07
вы в какой версии билдера работаете. я свой код проверил на 6..
если у вас не найден ресурс, значит его там нет. Как у вас .rc файл называется. При компоновки .rc файла, у вас получается .res ?
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
18.05.2009, 10:52
Цитата Сообщение от Monte-Cristo Посмотреть сообщение
вы в какой версии билдера работаете. я свой код проверил на 6..
если у вас не найден ресурс, значит его там нет. Как у вас .rc файл называется. При компоновки .rc файла, у вас получается .res ?
У меня 2009:
Образно говоря, до добавления ресурсов *.exe весил 800kb, а вставляемый файл 170kb
Когда создаю a.rc, прописываю в него текст, после компиляции, появляется a.res(171kb),и сам *.exe весит 970kb=800+170.
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
24.05.2009, 04:51
Раздражает!(ни как не пашет и неверится, что в 2009 отключили возможность) Скиньте пожалуйста в архиве, готовый проект где используется работа с файлами(любыми: звук,рисунок,exe).Заранее очень благодарен!
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
24.05.2009, 05:00
QenT,
для wav попробуй!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
 
#include "myResSound1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//---создать--myResSound1.RC---------
//VertuRW RCDATA "VERTU.wav"
//MinuteRW RCDATA "Minute.wav"
//----сохранить----закрыть-----открыть с помощью---
//C:\Program Files\Borland\CBuilder6\Bin\brcc32.exe
//-----на--выходе--myResSound1.RES-----------------
#pragma resource "myResSound1.RES"
 
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){}
//---------------------------------------------------------------------------
#include "mmsystem.h"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    HRSRC rSnd = FindResource(HInstance, "VertuRW", RT_RCDATA);
    rSnd = LoadResource(HInstance, rSnd);
    LPVOID Snd = LockResource(rSnd);
    PlaySoundA((BYTE*)(Snd), HInstance, SND_ASYNC | SND_MEMORY);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    HRSRC rSnd = FindResource(HInstance, "MinuteRW", RT_RCDATA);
    rSnd = LoadResource(HInstance, rSnd);
    LPVOID Snd = LockResource(rSnd);
    PlaySoundA((BYTE*)(Snd), HInstance, SND_ASYNC | SND_MEMORY);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)//stop
{
    PlaySoundA(0, 0, 0x0040);
}
//---------------------------------------------------------------------------
brcc32.exe - у тебя может быть в другой папке(включи поиск).
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
24.05.2009, 05:37
Цитата Сообщение от mirso Посмотреть сообщение
//---создать--myResSound1.RC---------
//VertuRW RCDATA "VERTU.wav"
//MinuteRW RCDATA "Minute.wav"
//----сохранить----закрыть-----открыть с помощью---
RCDATA или RT_RCDATA !?

Если RT_RCDATA, то я получил myResSound1.RES, положил его к проекту и в юните подключил, программа запускается без ошибок, но звук не проигрывается(предположительно потому, что не находит)
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
24.05.2009, 05:56
QenT,
Миниатюры
Как засунуть звук в exeшник  
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
24.05.2009, 06:12
Цитата Сообщение от mirso Посмотреть сообщение
QenT,
а как ты запускаешь его через brcc32?

я щас попробовал через консоль(адресса длинные поэтому через батник):
"C:\Program Files\CodeGear\RAD Studio\6.0\bin\brcc32.exe" "C:\Users\Vladislove\Documents\RAD Studio\Projects\myResSound1.rc"
pause
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
24.05.2009, 06:23
QenT,
правая кнопка и ...
открыть с помощью ...
ищу "brcc32.exe"
OK!
myResSound1.rc должен находится в папке
с проектом, где уже есть файлы wav,
"VERTU.wav" и "Minute.wav". и еще какие
у ты включишь в "*.rc"
0
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
24.05.2009, 06:34
Цитата Сообщение от QenT Посмотреть сообщение
RCDATA или RT_RCDATA !?

Если RT_RCDATA, то я получил myResSound1.RES, положил его к проекту и в юните подключил, программа запускается без ошибок, но звук не проигрывается(предположительно потому, что не находит)
здесь я кстати myResSound1.RES получил через компилятор

Добавлено через 3 минуты 41 секунду
Цитата Сообщение от mirso Посмотреть сообщение
QenT,
правая кнопка и ...
открыть с помощью ...
ищу "brcc32.exe"
OK!
myResSound1.rc должен находится в папке
с проектом, где уже есть файлы wav,
"VERTU.wav" и "Minute.wav". и еще какие
у ты включишь в "*.rc"
сделал все как написано, рес не получился(

Добавлено через 6 минут 20 секунд
Цитата Сообщение от mirso Посмотреть сообщение
QenT,
правая кнопка и ...
открыть с помощью ...
ищу "brcc32.exe"
OK!
myResSound1.rc должен находится в папке
с проектом, где уже есть файлы wav,
"VERTU.wav" и "Minute.wav". и еще какие
у ты включишь в "*.rc"
myResSound1.rc:
VertuRW RCDATA "VERTU.wav"
MinuteRW RCDATA "Minute.wav"

все файлы присутсвуют
при запуске если сделать скрин за доли сек как картинка мигнет(внутри пишется )
Error resSound1.rc 1 2: Bad character in source input
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
24.05.2009, 06:37
QenT,
покажи свой myResSound1.cpp
1
 Аватар для QenT
40 / 40 / 8
Регистрация: 29.01.2009
Сообщений: 244
24.05.2009, 06:39
Цитата Сообщение от mirso Посмотреть сообщение
QenT,
покажи свой myResSound1.cpp
если я подключаю в юните *.рес почему названия должны совпадать(это помогло)
Спасибо!
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
24.05.2009, 06:42
QenT,
потому, что идентификатор.
0
0 / 0 / 0
Регистрация: 24.05.2009
Сообщений: 3
24.05.2009, 07:41
У меня та же самая проблема. При этом - в Builder 2007 все работает.
Вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma resource "files.res"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
TResourceStream *res_stream2 = new TResourceStream(0, UnicodeString("jpg") ,
                                                  (System::WideChar*)"RT_RCData");
res_stream2->SaveToFile("fff.jpg" );
 
 
код файла ресурсов
jpg RCData "ddd.jpg"
 
Ума не приложу что делать.
}
 
[SIZE=1]Добавлено через 51 секунду[/SIZE]
У меня та же самая проблема. При этом - в Builder 2007 все работает.
Вот мой код
include <vcl.h>
#pragma hdrstop
 
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#pragma resource "files.res"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
TResourceStream *res_stream2 = new TResourceStream(0, UnicodeString("jpg") ,
(System::WideChar*)"RT_RCData");
res_stream2->SaveToFile("fff.jpg" );
 
 
код файла ресурсов
jpg RCData "ddd.jpg"
 
//  Ума не приложу что делать.
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2009, 07:41
Помогаю со студенческими работами здесь

Как засунуть форму из dll в TPanel главной формы приложения???
Есть следующий вариант вызова формы из dll с динамическим подключением: Код в dll: #include &lt;vcl.h&gt; #include...

Как засунуть звук в exe
Полагаю это как-то возможно тока вставка звука будет производится набором символов в ЕХЕ- шник? Я таким способом сращивал 2 мелодии в...

Как открыть exeшник?
Здравствуйте. В своей программе хочу сделать несколько exe файлов, но не знаю как открыть нужный, закрыть тот, из которого открываю, и...

exeшник с файлами?
Возможно ли сделать exe файл в котором будут храниться папки с файлами и время от времени их можно будет туда помешать и извлекать? Ешё...

Не запускается EXEшник
Не запускается программа. Раньше прекрасно работала. пару надель переустановил Виндовс, теперь такая проблема. Программа находится в одном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru