Jak używać funkcji C # w Javie przy użyciu biblioteki JNA

Spędziłem wiele godzin próbując użyć funkcji C # wewnątrz mojej aplikacji Java, ale nie miałem sukcesu ... Napisałem następującą bibliotekę w C #:

public class Converter
{

    public Converter()
    {
    }

    public bool ConvertHtmlToPdf(String directoryPath)
    {
        //DO SOMETHING
    }
}

Ta dll wywołuje inną bibliotekę dll, aby wykonać pewne operacje, ale gdy ją skompiluję, mogę znaleźć biblioteki Dll w moim folderze Realse i wszystko wydaje się być w porządku, więc skompilowałem go przy użyciu opcji 32-bitowej, 64-bitowej i dowolnej CPU tylko po to, aby upewnić się, że nie mój problem.

Analizuję moje pliki dllDependency Walker w opcji 32-bitowej i dowolnej CPU mówi, że nie można znaleźć IESHIMS.DLL i pokazać ten komunikat:

Ostrzeżenie: nie znaleziono co najmniej jednego modułu zależności opóźnienia obciążenia. Ostrzeżenie: Przynajmniej jeden moduł ma nierozwiązany import z powodu braku funkcji eksportu w module zależnym od obciążenia opóźnienia.

Nie występuje w przypadku pliku 64-bitowego, nie mogę jednak znaleźć mojej funkcji ConvertHtmlToPdf.

Ponieważ nie wiem, czy jest to istotne, czy nie, moim drugim krokiem był kod Java.

Aby załadować moją bibliotekę:

System.setProperty("jna.library.path", "C:\\Program Files (x86)\\Facilit\\Target App\\lib");

i:

public interface IConversorLibrary extends Library {

    IConversorLibrary INSTANCE = (IConversorLibrary) Native.loadLibrary("converter", IConversorLibrary.class);

    void ConvertHtmlToPdf(String directoryPath);
}

(Wydaje się, że lib jest ładowany pomyślnie, ponieważ jeśli spróbuję usunąć plik DLL z uruchomioną aplikacją, mówi, że nie można go usunąć, ponieważ jest używany) i wreszcie:

IConversorLibrary.INSTANCE.ConvertHtmlToPdf(directoryPath);

Ale rezultat nie jest tak naprawdę, jak sobie życzę:

java.lang.UnsatisfiedLinkError: Error looking up function 'ConvertHtmlToPdf': Could not find the specified procedure.

Nie wiem, co robię źle, próbowałem wielu samouczków i wielu rzeczy, ale wszystko wydaje się działać, każda pomoc jest naprawdę doceniana.

questionAnswers(2)

yourAnswerToTheQuestion