Включение звуков в исполняемый файл

Тема в разделе "Общие вопросы по С и С++", создана пользователем Never, 29 янв 2007.

Статус темы:
Закрыта.
  1. Never

    Never Гость

    Здравствуйте!
    Я сделала маленький текстовый редактор, который использует три звуковых wav-файла. Есть ли способ включить эти звуки в исполняемый exe-файл, чтобы в конечном итоге передать программу на другой компьютер в виде одного exe-файла?
    ----
    С уважением.
     
  2. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Можно, это называеться работа с ресурсами
     
  3. Never

    Never Гость

    А Вы не могли бы поподробнее рассказать, как это сделать? :)
     
  4. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
  5. Never

    Never Гость

    Спасибо :(
     
  6. Never

    Never Гость

    Простите, пожалуйста, но у меня не получается :(
    В текстовом файле "resource.rc" я написала строчку:

    -------------------------------------------
    MY_SOUNDS CATSOUNDS "cat2.wav"
    -------------------------------------------

    Затем подключила файл "resource.rc" к программе (Shift + F11).

    Потом вставила в начало *.cpp-файла этот код:

    -----------------------------------------------------------------------------------------------------------
    TResourceStream *res_stream = new TResourceStream(0, "MY_SOUNDS", "CATSOUNDS");
    res_stream->SaveToFile("cat2.bin");
    delete res_stream;
    -----------------------------------------------------------------------------------------------------------

    Но программа при компилировании выдает ошибку.
    Помогите, пожалуйста, что я сделала не так?
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-Never+29:01:2007, 17:32 -->
    <span class="vbquote">(Never @ 29:01:2007, 17:32 )</span><!--QuoteEBegin-->Потом вставила в начало *.cpp-файла этот код:
    [snapback]54399" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Что-то меня эта строчка смутила :( Может в обработчик кнопки поместить, например? Обьясните подробнее и, желательно, укажите текст ошибки.
     
  8. Never

    Never Гость

    Вот и меня тоже смущает, что этот код просто "висит" в программе, не привязанный ни к какому обработчику. Может, его вообще нужно в заголовочный *.h-файл поместить? :)

    Просто по второй ссылке, которую дал уважаемый Morpheus, написано "А где-то в программе:..." должен быть этот код. А я новичек, только учусь, и мне бы хотелось конкретно узнать, куда именно нужно это вставить.
    В обработчик кнопки не хотелось бы. Но если TResourceStream - это компонент, то должен же быть, наверное, и обработчик этого компонента? Но я не могу найти, где он находится в закладках?

    А ошибки выдает следующие:
    - Declaration Syntax Error
    - Declaration Terminated Incorrectly
     
  9. Never

    Never Гость

    Ура!!! Таки получилось! :)
    Но немного по другой формуле:
    =====================
    //in rc
    /*NAME TYPE FILE*/
    app RCDATA your.exe
    //in cpp
    TResourceStream *rs = new
    TResourceStream((int)HInstance,AnsiString("app"),RT_RCDATA);
    rs->SaveToFile("your.exe");
    delete rs ;
    =====================

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

    Только у меня теперь после запуска экзешника на другом компе, эти три звуковых файла снова из него "вываливаются", т.е. опять вместе с экзешником лежат в папочке три wav-файла. Так и должно быть? Просто я думала, что всё так и будет храниться в одном ехе-файле.
     
  10. zubr

    zubr Гость

    А куда ж они денутся, если вы их не удалите после окончания работы программы или после их проигрывания. Если не хотите, чтобы юзер их видел во время работы программы, сохраняйте их не в каталог программмы, а в другое место, к примеру в папку Temp. Есть еще вариант, выгружать файлы из ресурса в память программы, не сохраняя их на диске, но это для начинающего программиста, имхо, трудно.
     
  11. WinMain

    WinMain Гость

    Есть функция sndPlaySound, которая может проигрывать звук как из файла на диске, так и прямо в оперативной памяти. Т.е. из ресурсов не нужно вывыливать файлы на диск, а можно грузить их сразу в оперативную память и прямо там проигрывать.
     
Загрузка...
Похожие Темы - Включение звуков исполняемый
  1. shisik
    Ответов:
    0
    Просмотров:
    3.155
  2. azat20
    Ответов:
    6
    Просмотров:
    3.160
  3. Devil
    Ответов:
    4
    Просмотров:
    341
  4. vovapupkin
    Ответов:
    0
    Просмотров:
    1.244
Статус темы:
Закрыта.

Поделиться этой страницей