Я пишу код JNI на C++ для вызова из апплета в Windows XP. Мне удалось успешно запустить апплет и загрузить библиотеку JNI и вызвать ее, даже если у нее есть функции вызова в других DLL. Я получил эту работу, установив переменную системной среды PATH, чтобы включить каталог, в котором находятся все мои DLL.UnsatisfiedLinkError: Указанная процедура не найдена
Таким образом, проблема заключается в том, что я добавляю другой вызов, который использует новую внешнюю DLL, и вдруг при загрузке библиотеки, вызывается UnsatisfiedLinkError. Сообщение: «Указанная процедура не найдена». Это, похоже, не проблема с отсутствующей зависимой DLL, потому что я могу удалить зависимую DLL и получить другое сообщение об зависимой DLL. Из того, что мне удалось найти в Интернете, похоже, что это сообщение означает, что в DLL отсутствует встроенная реализация Java-функции, но странно, что он отлично работает без этого дополнительного бита кода.
Кто-нибудь знает, что может быть причиной этого? Какие вещи могут дать сообщение «Указанная процедура не удалось найти» для UnsatisifedLinkError?
У меня была эта проблема. libA вытащил libBv2 и libC. Оба libBv2 и libC были найдены. Проблема заключалась в том, что libC зависел от другой версии libBv1. libBv1 и libBv2 не работали вместе. зависимый ходок показывал библиотеки, но я не расширил зависимости libC. Я использовал procmon (http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx), чтобы увидеть загружаемые библиотеки, и именно тогда я заметил, что загружается вторая версия libB. – codeDr 2014-01-28 23:11:38