DLL плагинов, которые зависят от других DLL
Я пишу DLL для подключения к другому (стороннему) приложению. DLL должна зависеть от другого набора DLL (по лицензионным причинам я не могу связать статически).
Я хотел бы, чтобы моя DLL была "xcopy-deployable" для любого каталога. Я также хотел бы не требовать добавления этого каталога в путь.
Если я просто построю DLL обычным способом, Windows откажется загружать DLL, так как не может найти DLL рядом с текущим процессом.
Есть ли хорошие варианты, чтобы помочь Windows найти DLL?
Чтобы ответить на несколько вопросов:
DLL написана на C ++.Дополнительные библиотеки DLL - это QT-dll.Я хотел бы разместить дополнительные библиотеки DLL в той же папке, что и моя библиотека плагинов. Я могу получить название этой папки отGetModuleFileName
.Приложение - Firefox, DLL - модуль безопасности PKCS # 11.Приложение загружает DLL, используя полный путь к DLL (пользователь указывает ее при установке плагина).Требование размещения DLL-файлов в System32 или рядом с приложением будет работать, но это немного грязно и может вызвать проблемы с деинсталляторами.LoadLibrary
а такжеGetProcAddress
будет, конечно, работать, но это не реально осуществимо в моем случае. Я использую сотни, если не тысячи, методов в других DLL. Мне действительно нужно использовать библиотеки импорта.Я думал об использовании загруженных с задержкой DLL в сочетании сSetDllDirectory
в DllMain. Кто-нибудь пробовал что-нибудь подобное?