Динамическая перезагрузка плюсовых dll

245
26 июля 2017, 19:57

Добрый день. Есть приложение на C# в которое в процессе работы загружаются managed и unmanaged dll'ки. Необходимо реализовать динамическую перезагрузку этих dll'ок. C managed dll'ками проблем не возникает - я создаю дополнительный домен и загружаю их в него, а потом выгружаю весь домен. Unmanaged dll'ки, как я понимаю, с доменом не взаимодействуют и нужен другой механизм. Я пробовал освобождать их и загружать снова при помощи:

[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
static extern bool FreeLibrary(IntPtr hModule);
[DllImport("kernel32.dll")]
static extern IntPtr LoadLibrary(string dllToLoad);

Но при попытке повторного использования классов из этих библиотек бросается исключение Access Violation. Подозреваю, что при использовании FreeLibrary библиотеки выгружаются, но в clr остаются указатели на них и при попытке использования бросается исключение.

Вопрос: есть ли какой-то способ осуществить выгрузку и повторную загрузку unmanaged dll и в дальнейшем использовать их.

READ ALSO
Перегрузка оператора ++

Перегрузка оператора ++

Здравствуйте, есть класс к которому нельзя прибавить больше 1 значения, в классе идет индексация эллементов, и прочии действия)

203
Отображение файлов архива

Отображение файлов архива

ЗдравствуйтеМожете помочь? Пользователь открывает выбранный архив и как сделать отображение списка файлов архива в wpf c#?

212
Странное поведение Thread.Sleep [дубликат]

Странное поведение Thread.Sleep [дубликат]

На данный вопрос уже ответили:

200
Помогите разобраться С#!

Помогите разобраться С#!

Получается такЕсли вывожу

201