powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / поиск FBClient.DLL в реестре
25 сообщений из 36, страница 1 из 2
поиск FBClient.DLL в реестре
    #39135808
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по результатам последнего FB installer survey решил устыдиться и искать клиенткую либу в реестре

win7 x64 / fb 2.1 x86 / fb 2.5.5 x64 / fb 3rc x64 (установленны стандартными GUI-установщиками)

HKCU\Software - следов firebird'a не вижу

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Firebird Project - пустая папка

HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances

один единственный ключ DefaultInstance=C:\Program Files\Firebird\Firebird_2_5\


Итого - для моей 32-битной программы в реестре вообще ничего полезного нет, для 64-битных же программ есть только намёк, где можно пoискать одну из клиентских библиотек (если точно знаешь название), не самую последнюю к тому же (но возможно пока для 3rc отдельные правила, чтобы не прописывался *пока* в реестр). Названия же библиотеки, тем паче списка версий и названий - нет.

Ищем "fbclient.dll" в стандартных местах Windows

HKCR, HKCU - пусто

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs
C:\Program Files\Firebird\Firebird_2_5\bin\fbclient.dll=4
C:\Program Files\Firebird\Firebird_2_5\WOW64\fbclient.dll=4
C:\Program Files\Firebird\Firebird_3_0\fbclient.dll=1
C:\Program Files\Firebird\Firebird_3_0\WOW64\fbclient.dll=1
C:\Windows\system32\FBCLIENT.DLL=1
C:\Windows\system32\GDS32.DLL=1

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\SharedDLLs
C:\Program Files (x86)\Firebird\Firebird_2_1\bin\fbclient.dll=5
C:\Windows\system32\FBCLIENT.DLL=3
C:\Windows\system32\GDS32.DLL=4

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

Видно, что даже в Shared Libraries прописываются только библиотеки от fb 2.1, библиотеки же от 2.5/3.0 попали - в том числе 32-битные! - в 64-битный куст реестра, в который 32-битным аппликухам глядеть не резон.
И даже в этих местах искать можно только полным перебором по заранее известным именам DLL, после чего из самого файла читать его версию после пробной загрузки/выгрузки. IMHO хотя и гипотетически возможно, но практического смысла не имеет.

То есть остаются старые добрые "кладите весе в system32" и "правьте %PATH% чтобы показывал в firebird\WOW64 или firebird\bin".
Решения "проверенные временем" но чреватые DLL Hell, от которого - судя по наличию этого пункта отдельно в опроснике - создатели инсталлятора надеялись уйти. No way.

----

Для сравнения, записи в реестре сделанные другими программами, со сходной задачей - позволить наперёд неизвестным пользователям найти и загрузить нужную DLL

HKEY_CURRENT_USER\Software\MozillaPlugins\@mozilla.zeniko.ch/SumatraPDF_Browser_Plugin
Path=C:\Program Files (x86)\SumatraPDF\npPdfViewer.dll

HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@videolan.org/vlc,version=2.1.3
Path=C:\Program Files\VideoLAN\VLC\npvlc.dll

HKEY_LOCAL_MACHINE\SOFTWARE\MozillaPlugins\@Microsoft.com/NpCtrl,version=1.0
C:\Program Files\Microsoft Silverlight\5.1.41105.0\npctrl.dll
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135874
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

в реестре про fbclient никогда не было, как и про gds32.dll. Была только ссылка на папку установки. прописывается она и убирается утилитой instreg.exe.
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135911
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch, а нафига?
Для Win x64 берем два снапшота Firebird сервера - x86 и x86_64, выдергиваем оттуда библиотеки fbclient.dll, 64-битную помещаем в каталог %SystemRoot%\system32, а 32-битную в каталог %SystemRoot%\SysWOW64 (никак не наоборот!).
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135949
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochпо результатам последнего FB installer survey решил устыдиться и искать
клиенткую либу в реестре
"Не рекомендую. Съядят." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135959
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor64-битную помещаем в каталог %SystemRoot%\system32, а 32-битную в
каталог %SystemRoot%\SysWOW64 (никак не наоборот!).
Ты не поверишь, но может быть и наоборот. Это, видишь ли, зависит от разрядности утилиты,
которой ты лезешь куда не следует.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135993
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто, видишь ли, зависит от разрядности утилиты,
которой ты лезешь куда не следует.
Это зависит от особенностей MS Windows. В 64-битных форточках каталог SysWOW64 предназначен для хранения 32-битных образов библиотек, а system32 для 64-битных (как ни странно).
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39135998
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorВ 64-битных форточках каталог SysWOW64 предназначен для хранения
32-битных образов библиотек, а system32 для 64-битных (как ни странно).
Повторяю ещё раз, медленно: system32 это виртуальный каталог и какие библиотеки увидит в
нём приложение зависит от его разрядности.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136008
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, system32 не виртуальный, а вполне себе реальный. Когда загрузчик видит, что 32-битное приложения пытается получить из него 32-битную библиотеку (по таблице импорта приложения), он вместо каталога system32 подставляет SysWOW64.
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136019
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136024
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorвместо каталога system32 подставляет SysWOW64.
Места, где что-то подставляется вместо чего-то обычно и называют "виртуальными", нет?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136049
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvв реестре про fbclient никогда не было,

тогда этот вопрос в опроснике не имел практического смысла.

И отсюда уже вопрос - хотят ли в принципе разработчики FB делать поиск клиентской библиотеке в реестре вместо DLL Hell

Если да - то это надо делать немного по другому.
Если нет - то такой вопрос в опроснике был чистой провокацией
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136055
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТы не поверишь, но может быть и наоборот

не может

32-битная программа без спец-ключа видит system32 как полную копию SysWOW64, а 64-битные библиоткеи не видит в принципе

64-битная программа или 32-битная со спец-ключом видят 32-битные в SysWOW64, а 64-битные в system32

но режима "наоборот" - то есть видеть 64-битные билиотеки в SysWOW64 - такого режима нет в принципе

Только, мышки мои, это частности, я же как мудрый филин вопрос "по стратегии" ставил

Можно/нужно ли уйти от DLL Hell через прописывание разных клиентских библиотек в реестре.
Чтобы изготовители инсталляторов не обижались на тупых прикладников и наоборот, что вполне возможно в случае разных неозвученных взаимных ожиданий.
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136057
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, собственно, МП уже ответил.
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136061
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorArioch, а нафига?

Поскольку такой пункт был в опроснике про инсталлятор, я сделал предположение, что FB Team ожидает от прикладников именно этого как правильного поведения, а копирование gds32/fbclient/fbembed в system32 считает грязным legacy, который зажимая нос приходится тащить в новый чудесный мир из-за косности прикладников. Что-то типа fbguardian
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136071
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochМожно/нужно ли уйти от DLL Hell через прописывание разных клиентских библиотек в реестре.
ни fbclient.dll ни gds32.dll в реестре не прописываются . А "уйти от dll hell" можно только одним способом - размещая библиотеку рядом с exe.
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136075
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AriochТолько, мышки мои, это частности, я же как мудрый филин вопрос "по стратегии"
ставил
Вопрос по стратегии стоял ещё во времена разработки версии 1.5. Если найдёшь архивы, тогда
было сломано много копий и сгенерировано много бреда. Но, к счастью, разработчики таки не
дошли до маразма заставлять всех-всех прикладников делать специальные ужимки и
прыжки искать клиентскую библиотеку через реестр. И лично я надеюсь, что и сейчас до
этого не дойдёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136108
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch, предлагаю иную стратегию:
В исталляторе сделать как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
+--[x]"Сервер и компоненты"
|   +--[x]"Сервер" (целиком каталог bin, udf)
|   +--[x]"Клиент" (если "Сервер" отмечен, оставить отметку и заблокировать изменение, иначе клиентские либы в bin)
|
+--[ ]"Средства разработчика"
    +--[ ]"Документация и примеры" (каталоги doc, examples и include)
    +--[ ]"Библиотеки разработчика" (каталог lib)



В реестре стандартно путь в ветках:
для 64 (или Windows x86_32) - HKLM\SOFTWARE\Firebird Project\Client
для 32 на Windows x86_64 - HKLM\SOFTWARE\Wow6432Node\Firebird Project\Client
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136119
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя, каталог "include" скорее в "Библиотеки разработчика", а не в "Документация и примеры".
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136150
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor,

так ведь нужно ещё определиться, что писать

то есть аппликуха должна, желательно, видеть ещё до попытки ткнуться в файл, про каждую DLL

1) версию частичную x.y
2) версию частичную x.y.z или даже x.y.z.bbbbb
3) разрядность
4) наличие embed-движка внутри DLL

Вообще мне в этом плане импонирует симлинковая система хранения dll'ек разных версий в Линуксе, но в реестре симлинки делаются только на папки, не на значения
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136152
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch3) разрядность

а точнее даже архитектуру - x86, AMD64, WinRT/ARM, WinCE/ARM, etc
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136154
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvAriochМожно/нужно ли уйти от DLL Hell через прописывание разных клиентских библиотек в реестре.
ни fbclient.dll ни gds32.dll в реестре не прописываются . А "уйти от dll hell" можно только одним способом - размещая библиотеку рядом с exe.

тогда на хрена этот пункт вообще был в опроснике инсталлятора, если его реализация в принципе невозможна ?
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136155
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv ни fbclient.dll ни gds32.dll

ну и до кучи, ты уже второй раз забываешь про третье имя - fbEmbed
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136158
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvразмещая библиотеку рядом с exe.
...а заодно ICU, MSG и все что ещё может понадобиться
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136160
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructor
Код: sql
1.
2.
3.
+--[x]"Сервер и компоненты"
|   +--[x]"Сервер" (целиком каталог bin, udf)
|   +--[x]"Клиент" (если "Сервер" отмечен, оставить отметку и заблокировать изменение, иначе клиентские либы в bin)




в плане готовых бинарников - там и сейчас так.

но вот информации о клиенте для аппликух не публикуется

и по умолчанию установка клиента в system32 тоже не делается
...
Рейтинг: 0 / 0
поиск FBClient.DLL в реестре
    #39136252
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochв плане готовых бинарников - там и сейчас так.
Lagacy - штука нужная.

Ariochно вот информации о клиенте для аппликух не публикуется
если пользователь захочет поставить только клиента, то только клиента и пихать в bin и путь к нему в ветках реестра:
"HKLM\SOFTWARE\Firebird Project\Client" или "HKLM\SOFTWARE\Wow6432Node\Firebird Project\Client" в зависимости от разрядности ОС и FB клиента. Иными словами, при полной установке, пути для сервера и клиента будут указывать на один и тот же каталог bin.
К примеру, если пользователь ставит полный Firebird x64, а потом еще 32-битный клиент, то каталог с образами сервера и клиента x64 по умолчанию в:
"%ProgramFiles%\Firebird\Firebird_<major>_<minor>\bin",
а образ 32-битного клиент по умолчанию в:
"%ProgramFiles(x86)%\Firebird\Firebird_<major>_<minor>\bin"

После чего разрабы смогут спокойно находить fbclient.dll через реестр. Хотя, ИМХО, пихать клиентские библиотеки в system32 и SysWOW64 не помешает.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / поиск FBClient.DLL в реестре
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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