Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.07.2021, 13:17
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Использую в программах покупной DLL, обращение к нему идет после прописания в коде моей программы регистрационного ключа к этому DLL. Покупал его лет 10 назад, все это время работало без проблем. Но тут на одном из компов клиента обнаруживается этот же DLL более свежей версии и мне выдает, что мой ключ недействителен. Не могу понять, это нормально или нет? Если да, то получается, что разработчик DLL каждый год может выпускать новую версию, на которую я могу натыкаться у того или иного клиента, и получается, что мне из-за этого придется все время покупать свежую версию этой DLL? Хотя меня вполне устраивает старая. Можно ли как-то на одном компе использовать разные версии одной и той же DLL? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 13:50
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Положи свою версию DLL в папку где твой EXE. В остальном разработчик может все. Читай что у него в лицензии написано, или на сайте условия использования. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:54
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone получается, что разработчик DLL каждый год может выпускать новую версию, на которую я могу натыкаться у того или иного клиента, и получается, что мне из-за этого придется все время покупать свежую версию этой DLL? Pantalone Можно ли как-то на одном компе использовать разные версии одной и той же DLL? https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-search-order Если кратко - клади нужную версию DLL в тот же каталог что и EXE. Не забывай перед запуском этой программы, выгружать из памяти те которые используют другую версию DLL. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:04
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Dima T Положи свою версию DLL в папку где твой EXE. White Owl Если кратко - клади нужную версию DLL в тот же каталог что и EXE. Не забывай перед запуском этой программы, выгружать из памяти те которые используют другую версию DLL. К сожалению, это не работает. В системе зарегистрирована DLL с более свежей версией, кладу в папку свою и программа ноль внимания на нее. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:09
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone К сожалению, это не работает. В системе зарегистрирована DLL с более свежей версией, кладу в папку свою и программа ноль внимания на нее. Скорее всего тут используется COM-сервер, код которого расположен в DLL. В этом случае где брать DLL читается из реестра виндавса. Чисто теоретически можно попробовать перехватить это чтение и подменить ответ, но муторно это. К разработчикам DLL обращался? Что они говорят по этому поводу? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:19
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Dima T К разработчикам DLL обращался? Что они говорят по этому поводу? Денег хотят, ожидаемо. Буду Side-by-side Assembly копать, там вроде через манифест можно заставить работать с DLL в своей папке без регистрации в системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:23
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Dima T Pantalone К сожалению, это не работает. В системе зарегистрирована DLL с более свежей версией, кладу в папку свою и программа ноль внимания на нее. Скорее всего тут используется COM-сервер, код которого расположен в DLL. В этом случае где брать DLL читается из реестра виндавса. если dll с таким именем загружена в память программой A, то при старте программы B новая dll из другого каталога не будет загружаться вообще. Читайте доку (ссылку я уже дал). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:29
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone, А если твоя программа требующая старую версию - полностью твоя (в смысле ты ее написал или хотя-бы можешь поправить), то загружай нужную dll по абсолютному пути, либо прописывай манифест (который тоже использует абсолютный путь). Тогда ОС не будет искать dll а загрузит то что ей сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:33
|
|||
---|---|---|---|
DLL hell |
|||
#18+
White Owl А если твоя программа требующая старую версию - полностью твоя (в смысле ты ее написал или хотя-бы можешь поправить), то загружай нужную dll по абсолютному пути, либо прописывай манифест (который тоже использует абсолютный путь). Тогда ОС не будет искать dll а загрузит то что ей сказано. Моя. А не подскажете куда копать насчет загрузки по абсолютному пути, статейку какую может знаете? Манифест имеете в виду Side-by-side Assembly? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:44
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone White Owl А если твоя программа требующая старую версию - полностью твоя (в смысле ты ее написал или хотя-бы можешь поправить), то загружай нужную dll по абсолютному пути, либо прописывай манифест (который тоже использует абсолютный путь). Тогда ОС не будет искать dll а загрузит то что ей сказано. Моя. А не подскажете куда копать насчет загрузки по абсолютному пути, статейку какую может знаете? Манифест имеете в виду Side-by-side Assembly? https://docs.microsoft.com/en-us/windows/win32/dlls/run-time-dynamic-linking все что нужно знать о dll есть здесь. Вернее что есть здесь и по ссылка отсюда - нужно знать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2021, 05:40
|
|||
---|---|---|---|
DLL hell |
|||
#18+
White Owl Нет, вернее этот вариант тоже может быть, но есть ответ и попроще: если dll с таким именем загружена в память программой A, то при старте программы B новая dll из другого каталога не будет загружаться вообще. Читайте доку (ссылку я уже дал). Опыт не подтверждает: ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2021, 05:57
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone Можно ли как-то на одном компе использовать разные версии одной и той же DLL? Я решал не совсем такую, но чем-то похожую задачу: мне нужно было, чтобы COM-сервер для одних приложений работал, а для других выдавал ошибку/терминировал приложение. Действовал так: InProc сервер - это длл, которая экспортирует 4 функции: DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer. Написал свою прокси-длл, которая экспортирует те же функции, загружает оригинальную длл, сохраненную под другим именем и, в зависимости от имени процесса, либо форвадит вызовы оригинальной длл, либо формирует ошибку/терминирует процесс. Прокси библиотеку положил на место оригинальной ( с именем оригинальной). В Вашем случае можно действовать аналогично - если имя Вашего процесса, подгружается старая длл, иначе - новая, затем вызовы форвардятся куда нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
|
06.07.2021, 12:14
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone Использую в программах покупной DLL, обращение к нему идет после прописания в коде моей программы регистрационного ключа к этому DLL. Покупал его лет 10 назад, все это время работало без проблем. Но тут на одном из компов клиента обнаруживается этот же DLL более свежей версии и мне выдает, что мой ключ недействителен. Не могу понять, это нормально или нет? Если да, то получается, что разработчик DLL каждый год может выпускать новую версию, на которую я могу натыкаться у того или иного клиента, и получается, что мне из-за этого придется все время покупать свежую версию этой DLL? Хотя меня вполне устраивает старая. Можно ли как-то на одном компе использовать разные версии одной и той же DLL? Зачем ты используешь новую версию DLL? Используй всегда старую и не будет никаких проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.07.2021, 20:32
|
|||
---|---|---|---|
DLL hell |
|||
#18+
White Owl Dima T пропущено... Скорее всего тут используется COM-сервер, код которого расположен в DLL. В этом случае где брать DLL читается из реестра виндавса. если dll с таким именем загружена в память программой A, то при старте программы B новая dll из другого каталога не будет загружаться вообще . Читайте доку (ссылку я уже дал). Как вы себе это представляете? Это же прямой путь разрушить работу компьютера вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2021, 00:22
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone Dima T К разработчикам DLL обращался? Что они говорят по этому поводу? Денег хотят, ожидаемо. Буду Side-by-side Assembly копать, там вроде через манифест можно заставить работать с DLL в своей папке без регистрации в системе. Я думаю что не стоит в теме топика развивать идеи обхода лицензий. Создатель не предполагал такого use-case - значит надо с ним договариваться. Лицензния на пользователя или на физический хост. С одной стороны тема топика выглядит невинно. Но как на нее посмотреть... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2021, 14:47
|
|||
---|---|---|---|
DLL hell |
|||
#18+
petrav White Owl Читайте доку (ссылку я уже дал). Как вы себе это представляете? Это же прямой путь разрушить работу компьютера вообще. И вообще, прежде чем спорить и возмущаться - прочитайте документацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.07.2021, 15:03
|
|||
---|---|---|---|
DLL hell |
|||
#18+
White Owl petrav пропущено... Как вы себе это представляете? Это же прямой путь разрушить работу компьютера вообще. И вообще, прежде чем спорить и возмущаться - прочитайте документацию. Я настолько впечатлился, что решил восстановить акк тысячелетней давности. ... Ведь почти 13000 сообщений у человека... ... ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.07.2021, 11:38
|
|||
---|---|---|---|
|
|||
DLL hell |
|||
#18+
mayton Я думаю что не стоит в теме топика развивать идеи обхода лицензий. Создатель не предполагал такого use-case - значит надо с ним договариваться. Лицензния на пользователя или на физический хост. Имхо, ТС в своем праве. Он разработал софт, использующий стороннюю библиотеку легально (на момент создания). Если условия лицензирования нам неизвестны (а они неизвестны), ТС не должен доказывать, что он не верблюд. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.07.2021, 11:53
|
|||
---|---|---|---|
DLL hell |
|||
#18+
Pantalone К сожалению, это не работает. В системе зарегистрирована DLL с более свежей версией, кладу в папку свою и программа ноль внимания на нее. Это баг разработчика. Если он такие косяки допускает, что разные версии COM DLL имеют одинаковый GUID. За такое надо руки отрывать и по голове стучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.07.2021, 22:39
|
|||
---|---|---|---|
|
|||
DLL hell |
|||
#18+
Pantalone Dima T К разработчикам DLL обращался? Что они говорят по этому поводу? Денег хотят, ожидаемо. Буду Side-by-side Assembly копать, там вроде через манифест можно заставить работать с DLL в своей папке без регистрации в системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=16&mobile=1&tid=1339648]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 180ms |
0 / 0 |