|
|
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Проблема в следующем: есть dll которая подгружается динамически. Если использовать код: Код: pascal 1. и откомпилировать в *.exe, то он отрабатывает корректно и имеется ссылка на модуль библиотеке, если я этот же код компилирую в dll, то возвращается 0. Подскажите почему так может происходить? это тестовый код для приложения, который работает: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Это код из dll, который не находит загружаемую dll (getlasterror содержит 126): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:08 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Stept Код: pascal 1. 2. 3. => Выведи лучше сообщение: SysErrorMessage(GetLastError) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:23 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Выводит "Не найден указанный модуль". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:45 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Stept, Добавь ещё проверку FileExists(), на всякий. ... Что там у тебя за кодировка в имени модуля? А какую версию API в LoadLibrary() используешь - юникодную, или? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:57 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
А где код, который загружает эту DLL? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 18:58 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, Разве данный код Код: pascal 1. не загружает dll? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:04 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Stept "Не найден указанный модуль". Stept тестовым приложением, которое работает: Stept dll, который не находит загружаемую dll ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:07 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
ёёёёё А какую версию API в LoadLibrary() используешь - юникодную, или? Stept Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:08 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Библиотеки 32 бита. В тестовом каталоге, так же как и в том где создается dll две доп библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:11 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Steptне загружает dll? Повторяю медленно: где код, который загружает DLL в которой находится этот код? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:12 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Кстати если заменить Код: pascal 1. на Код: pascal 1. то DLLInstance <> 0, но не находится функция в: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:14 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Stept В тестовом каталоге, так же как и в том где создается dll две доп библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:15 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Stept то DLLInstance <> 0, Stept Код: pascal 1. ... но не находится функция в: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:17 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ А какая разница? Если идет вызов Я не уверен в правдивости ТС. Это он пишет, что в LoadLibrary строковый литерал, а в реальности что угодно может быть. Не верю я людям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:18 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
ёёёёё Это он пишет, что в LoadLibrary строковый литерал, а в реальности что угодно может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 19:20 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Скопировал файлы dll в каталог с exe все отработало корректно, не понимаю почему не используется путь явно указанный в LoadLibrary, а dll ищется в каталоге с exe... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 20:02 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Потому что цепочка зависимостей не кончается на твоём вызове. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 20:16 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
можно попробовать посмотреть Dependency Walker'ом. возможно как-то хитро зависимости не разрешаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2020, 22:38 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Вангую - ДЛЛ ищется в каталоге рядом с exe, а не в папке с ДЛЛ-загрузчиком. Хотя если указаны абсолютные пути - не уверен. FileExists - и проверять, что там получилось. P.S. Абсолютные пути типа X:\Y\z.dll - злое зло - переносимости никакой.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2020, 23:11 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
DarkMaster P.S. Абсолютные пути типа X:\Y\z.dll - злое зло - переносимости никакой.... Относительные - не меньшее зло. Достаточно запустить прогу из другой currentdir, чтобы все поломалось. В идеале это абсолютный, получаемый относительно бинарника. Правда, при запуске через хардлинк будет облом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 11:16 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Василий 2 DarkMaster P.S. Абсолютные пути типа X:\Y\z.dll - злое зло - переносимости никакой.... Относительные - не меньшее зло. Достаточно запустить прогу из другой currentdir, чтобы все поломалось. В идеале это абсолютный, получаемый относительно бинарника. Правда, при запуске через хардлинк будет облом Хардлинк - это, по-факту, копирование. Кто копирует только бинарник, а потом запускает - ссзб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2020, 20:34 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
alekcvp Хардлинк - это, по-факту, копирование. Это, по факту, ссылка. В nix среде, кстати, очень частый зверь. Правда, там и портабельный софт - редкость. Почему-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2020, 10:39 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
Василий 2 alekcvp Хардлинк - это, по-факту, копирование. Это, по факту, ссылка. В nix среде, кстати, очень частый зверь. Правда, там и портабельный софт - редкость. Почему-то Ок, по-сути это копирование. Т.к. обычная ссылка перестаёт работать если удалить исходный файл, на который она ссылается. Хардлинк будет работать, пока не удалишь сам хардлинк. В линуксе вообще полная **па с приложениями - приложение устанавливается только в те папки, в которые это задумано его автором, никакой гибкости, причём одно и то же приложение (например nginx) в одном дистрибутиве может быть установлено в /etc/nginx, в другом - куда-нибудь ещё, причём в первом свои данные оно будет хранить в /var/www, в другом - в /usr/www, в третьем - где-нибудь ещё. А самая мякотка в том, что узнать имена этих папок можно только их исходников или из гугла, т.к. чтобы посмотреть это в конфигах, надо знать где лежат сами конфиги, а они - см. выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2020, 11:09 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
alekcvp Василий 2 пропущено... Это, по факту, ссылка. В nix среде, кстати, очень частый зверь. Правда, там и портабельный софт - редкость. Почему-то Ок, по-сути это копирование. Т.к. обычная ссылка перестаёт работать если удалить исходный файл, на который она ссылается. Хардлинк будет работать, пока не удалишь сам хардлинк. Хардлинк - это именно ссылка. Отличие от обычной ссылки только в том что сам объект фактически удаляется только после того как на него не будет ни одного хардлинка. Ну и соответственно, возникает ограничение что хадлинки можно делать только в пределах одной файловой системы, иначе их не проконтролировать. А так - ссылка и ссылка. Зайди по любой ссылке, измени объект - и по любым ссылкам будет видно новое содержание. Так что точно не копирование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2020, 11:23 |
|
||
|
Не подключается dll в dll
|
|||
|---|---|---|---|
|
#18+
alekcvpприложение устанавливается только в те папки, в которые это задумано его автором Если автор правильный, то оно устанавливается туда, куда предписывает https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2020, 13:34 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39922071&tid=2038629]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 259ms |
| total: | 512ms |

| 0 / 0 |
