Normal
I.A. kann man von Java aus nicht einfach beliebige DLLs einbinden (angeblich ermöglicht JNA das in manchen Fällen; damit habe ich aber keine Erfahrung). Normalerweise verwendet man eine eigene Wrapper-DLL. Dazu definiert man abstrakte Java-Methoden, die man native implementieren will, kennzeichnet sie mit dem Schlüsselwort native und generiert mit javah daraus ein Header-File. Dazu kann man dann in C die Methodenrümpfe implementieren, die dann wiederum die eigentlich einzubindende DLL verwenden.