Форум по Delphi программированию



Вернуться   Форум по Delphi программированию > Все о Delphi > Мультимедиа
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.08.2013, 13:39
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию bass.dll в указанной папке

Привет.
Как указать проге путь к папке, где находится bass.dll
(' plugin\bass.dll')? Обычно я ставлю dll рядом с exe, а нужно как у Aimp,
в папке. Спасибо.
Ответить с цитированием
  #2  
Старый 03.08.2013, 15:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  basspath: String;
begin
  basspath:=IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
  basspath:=basspath+'plugin\bass.dll';
  LoadLibrary(PChar(basspath));
...
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 03.08.2013, 18:07
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
Печаль

Цитата:
Сообщение от NumLock
Код:
var
  basspath: String;
begin
  basspath:=IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName));
  basspath:=basspath+'plugin\bass.dll';
  LoadLibrary(PChar(basspath));
...


Спасибо.
Но не заработало.
Вставил ваш код в обработчик формы OnCreate, не может найти bass.dll.
Ответить с цитированием
  #4  
Старый 03.08.2013, 19:42
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

LoadLibrary возвращает 0? а GetLastError что?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 03.08.2013, 21:48
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
LoadLibrary возвращает 0? а GetLastError что?

Прописал: ShowMessage(SysErrorMessage(GetLastError));
чтоб увидеть последнюю ошибку.

Как всегда одно и тоже
Точка входа в процедуру bass_channelplay не найдена
в библиотеке dll bass.dll
Ответить с цитированием
  #6  
Старый 03.08.2013, 22:47
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Инициализация библиотеки происходит раньше чем событие OnCreate. Можно попытаться прописать нужный код в секцию implementation. В поставке bass также имеется pas-файл для динамической загрузки библиотеки.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #7  
Старый 03.08.2013, 22:47
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Библа левая поди.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #8  
Старый 03.08.2013, 22:55
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
Библа левая поди.
Не левая, смотри выше.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 04.08.2013, 00:00
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию

Цитата:
Сообщение от angvelem
Инициализация библиотеки происходит раньше чем событие OnCreate. Можно попытаться прописать нужный код в секцию implementation. В поставке bass также имеется pas-файл для динамической загрузки библиотеки.

Согласен.
Потому, как с basswma.dll кодик работает
Код:
procedure TForm1.FormCreate(Sender: TObject);
 var
  basspath: String;
begin

   basspath:=IncludeTrailingPathDelimiter(ExtractFilePath  (Application.ExeName));
    basspath:=basspath+'plugin\basswma.dll';
     LoadLibrary(PChar(basspath));
      Bass_PluginLoad('basswma.dll', 0);

    if bass_init(-1, 44100,0, handle,nil)=false then
    showmessage('Не могу инициализировать поток');
end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 04.08.2013 в 12:41.
Ответить с цитированием
  #10  
Старый 04.08.2013, 10:51
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

так у тебя статическая или динамическая загрузка? видимо статическая, отсюда и беды. почему результат LoadLibrary не проверяешь и не используешь?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #11  
Старый 04.08.2013, 20:55
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,503
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Вот-вот, не успел вчера написать про это. Прокатит ли такое "blabla external 'path\lib.dll"?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #12  
Старый 05.08.2013, 09:28
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
так у тебя статическая или динамическая загрузка? видимо статическая, отсюда и беды. почему результат LoadLibrary не проверяешь и не используешь?

Из четырех dll-лек которых я использую (bass.dll, AudioGenie3.dll, bass_fx.dll,
basswma.dll) все статические кроме basswma.dll.
Есть вариант попробовать dynamic_bass.pas, но как его реализовать на практике ума не приложу.
Ответить с цитированием
  #13  
Старый 05.08.2013, 09:50
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

первым делом вызвать:
Код:
Function Load_BASSDLL (const dllfilename : String) :boolean;
потом уже вызывать ее функции.
в конце работы:
Код:
Procedure Unload_BASSDLL;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
valvl63 (08.08.2013)
  #14  
Старый 08.08.2013, 00:09
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию

Ну что ж, так и не удалось мне реализовать чего то путного относительно темы. Отложу до лучших времен.
А вот для загрузки dll-лек разных музыкальных форматов из указанной папки пользуюсь строчкой:

Код:
BASS_PluginLoad(PChar('папка\имя.dll'), 0);

Всем, кто помогал, большое спасибо.
Ответить с цитированием
  #15  
Старый 17.10.2013, 00:22
valvl63 valvl63 вне форума
Прохожий
 
Регистрация: 26.12.2012
Сообщения: 30
Репутация: 10
По умолчанию

Привет.
Ну, вот я снова вернулся к теме.
Разобрался с bass.dll.
Нужно открыть bass.pas и исправить
Код:
// Functions
const
     bassdll = 'bass.dll';
на
Код:
// Functions
const
    bassdll = 'plugin/bass.dll';

Ну, а потом уже

Код:
BASS_PluginLoad(PChar('plugin\bass.dll'), 0);
Всем удачи.
Ответить с цитированием
Ответ



Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2021

ВКонтакте   Facebook   Twitter   Ссылка на Telegram