Я использую boost::dll
для загрузки библиотек во время выполнения.
С помощью следующего кода я могу загрузить DLL, даже если она находится в другой папке, чем папка с исполняемым файлом:
auto creator = boost::dll::import_alias<pluginapi_create_t>(fileName, "createPlugin", boost::dll::load_mode::append_decorations);
Но у меня проблема, когда у DLL есть другие зависимости.Это пример структуры моей папки:
Main Folder
|
|-program.exe
|
|-pluginsfolder
|
|-plugin1.dll
|-plugin2.dll
|-dependency.dll
Если я загружаю plugin1.dll
(у которого нет других зависимостей), это работает.
Если я загружаю plugin2.dll
, это требуетdependency.dll
, это не работает.
Полагаю, я мог бы поместить все библиотеки DLL в одну папку, и все снова начнет работать.Но я хотел бы хранить плагины в отдельных папках, потому что я хочу, чтобы другие пользователи могли загружать плагины из соответствующих папок.
Как я могу загружать плагины с зависимостями независимо от их положения в файловой системе?