Не могу загрузить DLL
От: ArtemUdovichenko  
Дата: 09.10.07 12:08
Оценка:
Есть некая 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";
    }
}


Не пойму в чем проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.