Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2011, 13:15   #1
}|{opa KopHeB
Пользователь
 
Регистрация: 14.01.2011
Сообщений: 23
По умолчанию Проблема указания путей в PlaySound()

Собственно

Код:
String sndDir = ExtractFileDir(Application->ExeName) + "\\music.wav";//Смотрим где лежит наш wav
PlaySound(sndDir.t_str(), NULL, SND_ASYNC | SND_FILENAME);//Воспроизводим
Проблема в том что ExtractFileDir() возвращает путь к фалу в виде "C:\some dir\file.wav" в то время как PlaySound() понимает путь с двойным слешем - "C:\\some dir\\file.wav"

Как быть? Уж очень не хочется делать костыль и посимвольно перебирать/добавлять символы.

Кроме того, примеры из MSDN не работают...
}|{opa KopHeB вне форума Ответить с цитированием
Старый 09.05.2011, 19:34   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Вы все перепутали.

Цитата:
PlaySound() понимает путь с двойным слешем
Ей двойные слеши не нужны. Двойные слеши - это С++, экранизация спецсимволов.
p51x вне форума Ответить с цитированием
Старый 10.05.2011, 05:03   #3
}|{opa KopHeB
Пользователь
 
Регистрация: 14.01.2011
Сообщений: 23
По умолчанию

Цитата:
Ей двойные слеши не нужны.
Я с Вами совершенно согласен, но хоть убейте a

Код:
PlaySound("C:\\example_dir\\file.wav", NULL, SND_ASYNC | SND_FILENAME); //Работает

PlaySound("C:\example_dir\file.wav", NULL, SND_ASYNC | SND_FILENAME); //Не работает. Воспроизводит системный звук(тынь =)) и всё

Последний раз редактировалось }|{opa KopHeB; 10.05.2011 в 05:07.
}|{opa KopHeB вне форума Ответить с цитированием
Старый 10.05.2011, 06:00   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

У меня работает. Путь нормально формируется.
Только я бы применял тип AnsiString, а не String.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 10.05.2011, 06:39   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
//Не работает.
Да ё-моё. Вы читате, что вам пишут. Тут двойные слеши нужны, это С++ запись, экранирование спецсимволов. Реально функция получить нормальный путь с одними слешами.
p51x вне форума Ответить с цитированием
Старый 10.05.2011, 06:53   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Тогда проверьте вот такую запись:
Код:
AnsiString sndDir = ExtractFileDir(Application->ExeName) + "\\1.wav";//Смотрим где лежит наш wav
Caption = sndDir;
Путь формируется с одинарными слешами. Что и требовалось доказать.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 10.05.2011, 08:21   #7
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
Сообщение от }|{opa KopHeB Посмотреть сообщение
Собственно

Код:
String sndDir = ExtractFileDir(Application->ExeName) + "\\music.wav";//Смотрим где лежит наш wav
PlaySound(sndDir.t_str(), NULL, SND_ASYNC | SND_FILENAME);//Воспроизводим
Проблема в том что ExtractFileDir() возвращает путь к фалу в виде "C:\some dir\file.wav" в то время как PlaySound() понимает путь с двойным слешем - "C:\\some dir\\file.wav"

Как быть? Уж очень не хочется делать костыль и посимвольно перебирать/добавлять символы.

Кроме того, примеры из MSDN не работают...
перебрать путь к файлу - не такая и трудоёмкая задача, не требующая больших ресурсов
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание диалогового окна для указания пути к рабочей книге igsxor Microsoft Office Excel 6 29.03.2011 01:01
Имя кнопки без явного указания A_L_E_X Microsoft Office Excel 5 13.03.2010 17:49
Как в WORDPRESS запретить постинг без указания заголовка и тегов? Рыжая_Бестия WordPress и другие CMS 2 11.09.2009 15:44
Обратиться к графику без указания имени ruavia3 Microsoft Office Excel 2 09.04.2009 14:12
PlaySound delphin100 Мультимедиа в Delphi 9 31.03.2008 08:40