FreeBasic
Главная
Вход
Регистрация
Четверг, 28.03.2024, 20:22Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » Не цепляется внешняя библиотека bass (Не цепляется внешняя библиотека bass)
Не цепляется внешняя библиотека bass
mashakovmaratДата: Среда, 08.05.2019, 15:37 | Сообщение # 1
Сержант
Группа: Пользователи
Сообщений: 36
Репутация: 0
Статус: Offline
Здравствуйте.

После компиляции входящего в комплект поставки файла demo.bas (пример работы со звуком через библиотеку bass) ожидаемо получаю demo.exe. Никаких претензий на этом этапе нет.
Однако уже пуска exe-файла получаю ошибку "Приложению не удалось запуститься, поскольку BASS.dll не был найден." И т.д.

В /inc есть bass.bi, в /lib/win32libbass.dll.
Где он ищет bass.dll непонятно.

Прошу подсказать, что делаю не так.
Спасибо.
 
haavДата: Среда, 08.05.2019, 17:33 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Привет!

Положи BASS.dll рядом с исполняемым файлом demo.exe (в той же папке).


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
mashakovmaratДата: Среда, 08.05.2019, 19:01 | Сообщение # 3
Сержант
Группа: Пользователи
Сообщений: 36
Репутация: 0
Статус: Offline
Цитата haav ()
Положи BASS.dll рядом с исполняемым файлом demo.exe (в той же папке).Я
 
/lib/win32/libbass.dll, про который я писал ранее, это оказался libbass.dll.a, таким образом, bass.dll у меня нет.
Скачал библиотеку bass с Un4seen, там несколько bass.dll, взял тот, что в корне - он win32.
Положил его в ту же папку, что и demo.bas. По-новой скомпилировал demo.bas. После пуска demo.exe в терминале показалось нечто вроде меню (нажмите такую клавишу, нажмите другую клавишу), а под меню была одна строчка служебной телеметрии "Music position Order 65535 Row 65535 (-1 second)".
Звука не было.
ESC для выхода из demo.exe отработал )) как надо - вышел.
Пока не вник, что fbc делает с файлом libbass.dll.a, возможно переколдовывает его bass.dll ???
Может мне что-то нужно сделать с libbass.dll.a
 ??
 
haavДата: Среда, 08.05.2019, 19:48 | Сообщение # 4
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Только что скачал где и ты BASS.dll , положил в папку с исполняемым файлом и все работает. Звуковые файлы точно лежат в нужной папке? В исходнике путь до файлов ставится относительно EXE-шника:

ExePath & "/../data/example.mo3"
ExePath & "/../data/example1.ogg"
ExePath & "/../data/example2.ogg"


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
mashakovmaratДата: Среда, 08.05.2019, 20:03 | Сообщение # 5
Сержант
Группа: Пользователи
Сообщений: 36
Репутация: 0
Статус: Offline
Спасибо большое. Заиграло ))
Чтобы более-менее окончательно закрепить, выходит, что при подключении внешней библиотеки fbc требует соответствующий .bi в /inc, соответствующий(ие) .a в /lib/win32 и саму .dll в том же месте, что и .exe.

P.S. Насчет путей
Цитата haav ()
ExePath & "/../data/example.mo3"ExePath & "/../data/example1.ogg"
ExePath & "/../data/example2.ogg"

это описано в самой библиотеке? или, допустим, data-папку можно кинуть вместе с .dll, ну и, соответственно, изменить пути.
 
haavДата: Среда, 08.05.2019, 21:15 | Сообщение # 6
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: Offline
Цитата
fbc требует соответствующий .bi в /inc


необязательно , просто разработчики уже положили данные заголовки в поставку компилятора, поэтому нам меньше "телодвижений". А так вообще их можно загружать откуда угодно, это ведь всего лишь часть исходника с описанием констант , деклараций и пр.

Цитата
соответствующий(ие) .a в /lib/win32


Файлы dll.a - это связующие библиотеки и их наличие может потребоваться только на этапе компиляции , когда под рукой нет реальной библиотеки .dll или .a

Ты можешь провести эксперимент:

  • Переименовать или временно удалить файл libbass.dll.a
  • Положить рядом с исходником (файлом demo.bas) библиотеку bass.dll
  • Скомпилировать и запустить ; все должно работать

Цитата
это описано в самой библиотеке? или, допустим, data-папку можно кинуть вместе с .dll, ну и, соответственно, изменить пути.


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

DLL файлы при статической линковке можно загружать (касается только платформы Windows, на Linux свои заморочки):

  • из папки с исполняемым файлом EXE
  • из глобального системного каталога (обычно C:\Windows\System32) 
  • из глобального каталога , описанного в переменных средах (переменная PATH)  

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



Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
DarkDemonДата: Четверг, 09.05.2019, 06:19 | Сообщение # 7
Полковник
Группа: Друзья
Сообщений: 188
Репутация: -2
Статус: Offline
mashakovmarat, с какой целью вам библиотека bass?
Во-первых она дорогущая и для лиц. чистоты вы создадите себе проблему в будущем,
а во-вторых для всякого разного, что несложно озвучить(презентаций, игр) есть варианты попроще
про которые Стас уже говорил:
1)  FBSound
2)  Squall

Для того, что посложнее это руками кодить MME, DirectSound и ASIO. MME из них самое простое,
вкуривается примерно за неделю.


Сообщение отредактировал DarkDemon - Четверг, 09.05.2019, 06:20
 
mashakovmaratДата: Четверг, 09.05.2019, 12:50 | Сообщение # 8
Сержант
Группа: Пользователи
Сообщений: 36
Репутация: 0
Статус: Offline
Цитата haav ()
Файлы dll.a - это связующие библиотеки и их наличие может потребоваться только на этапе компиляции , когда под рукой нет реальной библиотеки .dll или .a

Буду иметь ввиду. Спасибо.

Цитата DarkDemon ()
с какой целью вам библиотека bass?

Эта библиотека не "идея фикс", просто на ее примере хотел понять механизм подключения внешних библиотек. А она звуковая, результат сразу понятен - либо все хорошо, либо все нехорошо.

Думаю каждая следующая библиотека может быть частным случаем, поэтому, с вашего позволения, возможно буду мучать вопросами.
Надеюсь справлюсь сам.

Спасибо большое за помощь.
 
Форум » Freebasic » Вопросы по языку FreeBasic » Не цепляется внешняя библиотека bass (Не цепляется внешняя библиотека bass)
  • Страница 1 из 1
  • 1
Поиск: