Встроенная загрузка работает хорошо.Загрузка из .net выдает ошибку Не удается загрузить DLL 'my.dll':Недопустимый доступ к ячейке памяти
-
28-10-2019 - |
Вопрос
Я пытаюсь использовать встроенную библиотеку dll, используя DllImport.И я получаю такую ошибку.
Система.DllNotFoundException:Не удается загрузить библиотеку DLL 'my.dll':Недопустимый доступ к ячейке памяти.(Исключение из HRESULT:0x800703E6)
Эта библиотека dll загружается обычно когда вызывается из машинного кода (он используется из приложения delphi).Но когда я вызываю его из .net-кода, он выдает мне исключение выше.
Я прочитал эту ссылку Windows Vista:Не удается загрузить библиотеку DLL 'x.dll':Недопустимый доступ к ячейке памяти.(Исключение DllNotFoundException), но никакое решение не помогает.
ДЕП, права администратора здесь ни при чем.
P.S.Эта ситуация возникает в Windows 2008 server.На сервере Win 2003 и XP все работает отлично.
Решение
Кажется, я нашел проблему.Проблема была в функции DEP.Когда я включил DEP только для основных программ, это не дало никакого эффекта.Но когда я полностью отключил DEP, и перезагружен на моем сервере произошла ошибка.Еще одна вещь, которую я сделал - установил последние обновления для .net 4.0