Есть некая My.DLL — моя программа. И я ее хочу использовать в Java.
Но я не могу ее загрузить. Говорит
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Projects\CBFX\main\sources\fx\debug\My.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(Unknown Source)
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at Loader.main(Loader.java:6)
Эта ошибка появилась после того, как я в My.Dll начал использовать библиотеку Xerces-c.
А если попытаться загрузить эту dll через WINAPI LoadLibrary, то она нормалшьно грузится.
Вот код загрузки из Java
public class Loader {
public static void main(String[] args) {
String libraryPath = System.getProperty("java.library.path");
System.out.println("Library path: " + libraryPath);
System.loadLibrary(args[0]);
}
}
А вот код загрузки из C
#include <windows.h>
#include <iostream>
int main(int argc, char* argv[])
{
HMODULE module = LoadLibrary(argv[1]);
if (module == NULL)
{
std::cout << "Can't load library\n";
DWORD errCode = GetLastError();
std::cout << "Error code: " << errCode << '\n';
}
else
{
std::cout << "Library loaded\n";
}
}
Не пойму в чем проблема?