![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Привет.
Как указать проге путь к папке, где находится bass.dll (' plugin\bass.dll')? Обычно я ставлю dll рядом с exe, а нужно как у Aimp, в папке. Спасибо. |
|
#2
|
||||
|
||||
|
Код:
var basspath: String; begin basspath:=IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)); basspath:=basspath+'plugin\bass.dll'; LoadLibrary(PChar(basspath)); ... |
|
#3
|
|||
|
|||
|
Цитата:
Спасибо. Но не заработало. Вставил ваш код в обработчик формы OnCreate, не может найти bass.dll. |
|
#4
|
||||
|
||||
|
LoadLibrary возвращает 0? а GetLastError что?
|
|
#5
|
|||
|
|||
|
Цитата:
Прописал: ShowMessage(SysErrorMessage(GetLastError)); чтоб увидеть последнюю ошибку. Как всегда одно и тоже Точка входа в процедуру bass_channelplay не найдена в библиотеке dll bass.dll |
|
#6
|
||||
|
||||
|
Инициализация библиотеки происходит раньше чем событие OnCreate. Можно попытаться прописать нужный код в секцию implementation. В поставке bass также имеется pas-файл для динамической загрузки библиотеки.
|
|
#7
|
||||
|
||||
|
Библа левая поди.
|
|
#8
|
||||
|
||||
|
Цитата:
|
|
#9
|
|||
|
|||
|
Цитата:
Согласен. Потому, как с 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
|
||||
|
||||
|
так у тебя статическая или динамическая загрузка? видимо статическая, отсюда и беды. почему результат LoadLibrary не проверяешь и не используешь?
|
|
#11
|
||||
|
||||
|
Вот-вот, не успел вчера написать про это. Прокатит ли такое "blabla external 'path\lib.dll"?
|
|
#12
|
|||
|
|||
|
Цитата:
Из четырех dll-лек которых я использую (bass.dll, AudioGenie3.dll, bass_fx.dll, basswma.dll) все статические кроме basswma.dll. Есть вариант попробовать dynamic_bass.pas, но как его реализовать на практике ума не приложу. |
|
#13
|
||||
|
||||
|
первым делом вызвать:
Код:
Function Load_BASSDLL (const dllfilename : String) :boolean; в конце работы: Код:
Procedure Unload_BASSDLL; |
| Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
valvl63 (08.08.2013)
| ||
|
#14
|
|||
|
|||
|
Ну что ж, так и не удалось мне реализовать чего то путного относительно темы. Отложу до лучших времен.
А вот для загрузки dll-лек разных музыкальных форматов из указанной папки пользуюсь строчкой: Код:
BASS_PluginLoad(PChar('папка\имя.dll'), 0);Всем, кто помогал, большое спасибо. ![]() |
|
#15
|
|||
|
|||
|
Привет.
Ну, вот я снова вернулся к теме. Разобрался с bass.dll. Нужно открыть bass.pas и исправить Код:
// Functions
const
bassdll = 'bass.dll';Код:
// Functions
const
bassdll = 'plugin/bass.dll';Ну, а потом уже Код:
BASS_PluginLoad(PChar('plugin\bass.dll'), 0); |