dllimport не удалось найти dll, хотя он находится в PATH - PullRequest
6 голосов
/ 16 ноября 2008

Я использую [Dllimport ("DllName.dll")] где я уверен, что путь к моей DLL существует в переменной окружения процесса PATH, и до сих пор Я получаю сообщение "DllName.dll не найден"

Ответы [ 4 ]

12 голосов
/ 17 марта 2009

«Не удалось найти DllName.dll» также может означать, что DllImport не обнаружил одну из зависимостей DllName.dll.

Захватите Зависимость Уокер , чтобы проверить, какая зависимость вам не хватает.

1 голос
/ 10 февраля 2017

Я использовал const string lcms2Path = "C:\\lcms2.dll"; в своем приложении C # в течение самого длительного времени. Но, наконец, переместил DLL в папку BIN, и это прекрасно работает [DllImport("lcms2.dll")].

1 голос
/ 16 ноября 2008

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

http://msdn.microsoft.com/en-us/library/ms682586.aspx

Я нашел самый простой способ загрузить DLL - просто поместить ее в то же место, что и программа, которую я выполняю.

0 голосов
/ 16 ноября 2008

Я бы посоветовал вам использовать FileMon (sysinternals.com), чтобы проверить правильность ваших предположений о расположении библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...