Принудительная статическая загрузка dll из данного каталога - PullRequest
0 голосов
/ 10 декабря 2010

В нашем приложении мы динамически загружаем файл dll, который снова имеет статические привязки к другим dll.

До сих пор все эти dll были в нашей папке приложения. С этого момента мы хотим переместить эти библиотеки в структуру каталогов. Из какой папки следует загружать dll, зависит от времени выполнения. (управление версиями / динамические обновления ...)

Вопрос 1 : Каков наилучший способ заставить динамически загружаемую библиотеку искать статически загруженные библиотеки в заданной папке?

Вопрос 2 : Как мы можем предотвратить загрузку статических библиотек из папки приложения, если там оставлена ​​более старая версия библиотек?

(кстати, это приложение win32 ...)

1 Ответ

3 голосов
/ 10 декабря 2010

Для Q1 вы должны смотреть на SetDllDirectory.Он влияет на все последующие операции поиска DLL, при условии, что библиотеки DLL в папке приложения (например, ваши старые библиотеки DLL) по-прежнему имеют приоритет.

На вопрос 2 сразу же отвечают: если вы не хотите этого, не используйте неявную загрузку DLL.Используйте LoadLibraryEx и используйте полный путь.Это единственный способ запретить Windows выполнять поиск.

...