DllNotFoundException, но DLL есть
поэтому я использую SDK для аппаратного генератора случайных чисел, который предоставляет dll под названием PsyREG.dll для взаимодействия с ним, а также некоторый источник c# для использования методов из dll.
Он работал в прошлом, но почему-то перестал работать. Мои руки немного связаны, так как на данный момент у меня нет доступа к устройству, о котором идет речь, поэтому я не могу попробовать много вещей...
однако, вот что странно. Dll там, в том же месте, что и всегда. Ahd на самом деле файл.Существует ("PsyREG.dll") возвращает true, и я дважды проверил, и это точно так же, как предоставленный источник c# импортирует его, например [DllImport("PsyREG.файл DLL.])"
какие идеи?
5 ответов
вероятно, эта dll имеет некоторые зависимости, которые они arent registred или arent в той же папке вашего приложения.
Возможно, вам следует проверить, ожидаете ли вы определенную версию продукта dll, и убедитесь, что версии продукта по-прежнему соответствуют правильно.
я столкнулся с этой проблемой и решена следующим образом:
существует зависимость от msvcr90.dll, если вы компилируете под /MD. Попробуйте вместо этого скомпилировать код с помощью /MT.
Project properties
>C/C++
>Code Generation
>Runtime Library: /MT
Я имел дело с тем же исключением в отношении одного из моих DLL (назовем его A
). C# сбой, потому что он утверждал, что не может найти эту DLL (A
) (пока он был в той же папке, что и исполняемый файл).
оказалось, что проблема была вызвана A
имея зависимость от другой DLL (назовите его B
). B
не было на пути так A
не удалось загрузить его, когда это было необходимо. С B
нужна целая куча других DLL, решением было добавить к PATH
переменные среды.
интересно, как C# падает с ошибкой, говоря, что A
не найден, когда на самом деле B
не найдено...