я использую Java JNI
загрузить native dll
модуль (64 bit JVM, 64 bit dll, Windows 8.1
). Модуль используется для декодирования H.264
файл в байтовый массив с помощью libavcodec
, который находится в предварительно скомпилированных общих DLL.
Когда я играл в простой JNI (мимоходом String
в JNI и вернуться byte[]
назад), у меня не было проблем с загрузкой модуля DLL. Но когда я добавил ссылку на avformat.dll
, моя DLL не будет вызывать нагрузку unsatisfied link error: Can´t find dependant libraries
,
Я осмотрел avformat
с помощью DependencyWalker
, Это зависит от advapi.dll
который зависит от того, что несколько dll сообщили об отсутствии. На них есть API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
, Эта DLL действительно отсутствует в моей установке Win.
Итак, теперь я запутался в двух вещах:
1, почему MS предоставил advapi.dll
зависеть от DLL, которая не является частью системы?
2, когда я ранее пытался использовать avformat
библиотека в виде отдельного приложения Win32 (exe), DependencyWalker
сообщил о том же пропущенном dll, но он выполнил декодированные кадры без проблем. Как это возможно, если мне не хватает его зависимости?
Задача ещё не решена.
Других решений пока нет …