Некоторые из наших пользователей жалуются на libmmd.dll не найден ошибка при загрузке наших плагинов.
Немного предыстории:
Для удобства давайте назовем плагин DLL plugin.dll (!!!).
У меня не было много времени на компьютере одного из затронутых пользователей, но, как я увидел, переустановка пакета Intel redistributables не помогла, только перемещение libmmd.dll в ту же папку, что и plugin.dll.
Какой бы ни была причина такого (внезапного и неожиданного) поведения, мы хотим иметь возможность предоставлять программное обеспечение, защищенное от подобных проблем (DLL Ад).
Что мы хотим для plugin.dll для поиска библиотек сначала в определенной директории (настраиваемый будет еще лучше), то в обычном порядок поиска.
Я пытался играть с манифесты, реестр, имена библиотек, параметры компоновщика…
Единственное, что действительно работало, это переключение / MD опция с / MT (но перекомпиляция со статическими библиотеками действительно увеличивает размер plugin.dll) и копирование библиотеки в папку plugin.dll находится в.
Есть идеи ?
Спасибо !
SetDllDirectory
Функция позволяет добавить путь к папке в порядке поиска DLL. Он будет добавлен на втором месте, сразу за самой папкой программы.
Это влияет только на библиотеки DLL, загруженные через LoadLibrary
тем не мение; если ваши DLL загружены статически, это не будет иметь никакого значения.
Других решений пока нет …