powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Определение IB/FB из udf
7 сообщений из 7, страница 1 из 1
Определение IB/FB из udf
    #40057273
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 64 битная UDF которая выделяет память через ib_util_malloc(). Эта UDF может использоваться как в Interbase, так и в Firebird. Проблема в том, что в 64 битной версии Interbase эта функция находится в файле ib_util64.dll, а в Firebird в ib_util.dll.

Вопрос: есть ли возможность узнать откуда загружается UDF - из Firebird или Interbase. Ориентироваться на имя процесса нельзя, т.к. это может быть Embedded версия.

Версия Firebird может быть начиная с 2.5. Если 2.5 - это плохо, то можно ограничить 3.0, но нежелательно.

Пока вариант грузить вначале одну dll, а потом, если не нашли, другую не рассматриваем

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057275
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_
Вопрос: есть ли возможность узнать откуда загружается UDF - из Firebird или Interbase. Ориентироваться на имя процесса нельзя, т.к. это может быть Embedded версия.

А задача какая? Кроме как идентифицировать источник
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057276
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman
А задача какая?
Подгрузить нужную dll.

Сейчас это делается так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class constructor TIBMemManger.Create;
begin
  {$IFDEF Win64}
  FHandle := LoadLibrary('ib_util64.dll');
  if FHandle = 0 then
  {$ENDIF}
  FHandle := LoadLibrary('ib_util.dll');
  if FHandle <> 0 then
    FAlloc := GetProcAddress(FHandle, 'ib_util_malloc');
end;
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057277
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Эта UDF может использоваться как в Interbase, так и в Firebird.
я бы не стал. В смысле, для ИБ надо одну udf, для ФБ другую.
Либо, 64битную либу ФБ переименовать в такое же ib_util64.dll.
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057278
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
я бы не стал. В смысле, для ИБ надо одну udf, для ФБ другую.
Зачем, если они идентичные кроме одного момента?
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057280
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,

тогда не получится (если ничего не переименовывать). А чем не устраивает "сейчас это делается так"? работает же.
...
Рейтинг: 0 / 0
Определение IB/FB из udf
    #40057284
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
чем не устраивает
На самом деле этот пост возник из-за возникшей ошибки, которая описана в соседней ветке, и я подумал, что по ошибке была загружена dll от Interbase. Плюс я недосмотрел, что ib_util.dll все равно пытается загрузиться, если не была найдена ib_util64.dll. Так что в данный момент этот вопрос скорее тяга к прекрасному.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Определение IB/FB из udf
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]