Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

Auf existierende DLL (in C geschrieben) mittels JAVA zugreifen!

DeepThinking / 17 Antworten / Flachansicht Nickles

Hallo, ich möchte auf eine in C geschriebene DLL mittles Java zugreifen. Also die DLL ist -wie gesagt - schon vorhanden; ich will lediglich sie in meinem Java-Programm einbinden, damit ich bestimmte Funktionen aufrufen kann. Ich habe Java Native Interface angeschaut und kann eigene DLL erstellen, die ich dann in Java-Programmen einbinden kann(mit System.loadLibrary). Aber was ist, wenn die DLL schon existiert!?


Konkret: ich habe FRME_GRABBER.DLL (in C geschrieben) und will sie im JAVA-Programm benutzen. z.B. möchte die Funktion long Grab(long fgh, FRAME *frh), was schon in dieser FRAME_GRABBER.DLL implementiert ist, in meinem JAVA-Programm benutzen.

bei Antwort benachrichtigen
mr.escape vergisses „Auf existierende DLL (in C geschrieben) mittels JAVA zugreifen!“
Optionen

Solche teile wie ein framegrabber haben selten os-treiber (wie z.b. twain) sondern in der regel eine api (häufig als ??-sourcecode, statische lib oder dll). Hier wird wohl nur die wrapper dll variante übrig bleiben, was die entwicklung einer dll in C erforderlich macht. Das mindeste dafür ist die kenntnis der struktur FRAME ("FRAME *frh") und eine eins zu eins (grössen und alignements) java umsetzung. Dafür und für das dynamische linken (runtime) ist noch eine header-datei erforderlich (lässt sich aber selber machen, teile (alles?) sind ja schon vorhanden) und bei der statische variante (loadtime) zusätzlich eine import-lib (das könnten tools machen, müsste man aber suchen).

mr.escape

"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
Danke viel mals! DeepThinking
Danke viel mals! vergisses