Вопрос
У меня есть сторонняя DLL, которая выдает необработанное исключение при попытке выгрузить его из моего родного приложения на Си.Это приводит к сбою FreeLibrary и загрузке модуля в моем процессе.
Есть ли варианты принудительной выгрузки библиотеки?
Что вы делаете, когда FreeLibrary вызывает?
ДополнительноСправочная информация
При использовании динамического связывания во время загрузки это довольно раздражает, но в конечном итоге приложение разрушается ОС.Проблема возникает при использовании динамического связывания во время выполнения.Я загружаю эту DLL, использую ее, а затем в некоторых случаях мне нужно выгрузить ее из виртуального адресного пространства моего процесса, а затем продолжить работу.Когда я вызываю FreeLibrary в сторонней библиотеке, она выполняет некоторую работу по очистке (то есть в DllMain, когда вызывается DLL_PROCESS_DETACH ).В то время как он выполняет очистку, он вызывает исключение, которое он не обрабатывает, и превращается в необработанное исключение для FreeLibrary.В результате происходит сбой вызова и модуль остается загруженным.
Я отправил заявку поставщику, так что, надеюсь, я смогу найти исправление, которое позволит этой конкретной библиотеке успешно выгружаться.Однако, если я этого не сделаю, и для общего случая этой проблемы, мне любопытно, какие есть варианты.