Подтвердить что ты не робот

DllNotFoundException, но DLL есть

Итак, я использую SDK для генератора случайных чисел оборудования, который предоставляет DLL под названием PsyREG.dll для взаимодействия с ним, а также некоторый источник С# для использования методов из dll.

Он работал в прошлом, но как-то он прекратил работать. Мои руки немного связаны, поскольку на данный момент у меня нет доступа к рассматриваемому устройству, поэтому я не могу попробовать много чего...

Однако здесь странная вещь. Там есть dll, там же всегда было. Ahd на самом деле File.Exists( "PsyREG.dll" ) возвращает true, и я дважды проверял, и точно так же, как предоставленный им источник С# импортирует его, например. [DllImport ( "PsyREG.dll" )].

Любые идеи?

4b9b3361

Ответ 1

Вероятно, эта DLL имеет некоторые зависимости, которые они не зарегистрированы или не существуют в одной и той же папке вашего приложения.

Ответ 3

Возможно, вам стоит проверить, ожидаете ли вы определенной версии продукта dll и убедитесь, что версии продуктов по-прежнему совпадают.

Ответ 4

Я столкнулся с этой проблемой и решил следующее:

При компиляции под /MD существует зависимость от msvcr90.dll. Попробуйте выполнить компиляцию кода с помощью /MT.

Project properties > C/C++ > Code Generation > Runtime Library: /MT

Ответ 5

Я имел дело с тем же исключением в отношении одной из моих DLL (позвольте называть его A). С# сбой, потому что он утверждал, что не может найти эту DLL (A) (пока она была там в той же папке, что и исполняемый файл).

Выяснилось, что проблема вызвана тем, что A имеет зависимость от другой DLL (назовите ее B). B не было в пути, поэтому A не смог загрузить его, когда он ему нужен. Поскольку B требовалась целая куча других DLL, решение заключалось в том, чтобы добавить каталог B в переменную среды PATH.

Интересно, как С# падает с ошибкой, говоря, что A не найден, когда на самом деле B не найден...