tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
3934
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Steven19 Steven19 ist offline Mitglied
    Registriert seit
    Sep 2010
    Beiträge
    20
    Guten Morgen

    Ich habe ein kleines Problem. Ich möchte eine DLL Datei von meiner Schrittmotorenkarte in mein Java programm einbinden.
    Das habe ich mit dem Befehl: System.loadLibrary("emis_pbl.dll"); gemacht.

    Jetzt muss ich sie noch in meine Library einfügen aber das ist nicht so einfach weil es keine JRE Datei ist.
    Ich habe schon was gelesen das man was mit JNI machen muss aber das hat mir auch nicht viel weiter geholfen.

    Den Link von der JNI Seite habe ich schon aber ich werd daraus einfach nicht schlau.

    Ich habe die DLL Datei mal in den Anhang gemacht.



    Gruß Steffen
    Angehängte Dateien Angehängte Dateien
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Hi Steffen
    schau dir am besten mal JNA(https://jna.dev.java.net/) an. Diese API bietet einen sehr einfachen Zugriff auf native Bibliotheken wie DLLs unter Windows. Was du aber trotzdem brauchst, sind die Header-Dateien dieser Bibliothek, denn sie legen die Namen fest, mit denen auch JNA auf die Befehle der DLL zugreift.
     

  3. #3
    Steven19 Steven19 ist offline Mitglied
    Registriert seit
    Sep 2010
    Beiträge
    20
    Morgen genodeftest,

    Danke für deine schnelle Antwort. Aber im großen und ganzen bringt das mich nicht wirklich weiter.
    Hat den keiner eine Anleitung wie man eine DLL in Java einbinden kann****

    Gruß Steffen
     

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Was meinst du mit "einbinden"?
    Wenn du Zugriff auf native Bibliotheken wie DLLs suchst, musst du dir JNI sehr genau ansehen, siehe z.B. http://openbook.galileocomputing.de/...sel_27_001.htm. Einfacher geht es wie gesagt mit JNA. Aber beides erfordert etwas Arbeitsaufwand .

    Wichtig ist zuerst:
    Wo ist der Header der DLL? ohne ihn kann man nicht auf die Bibliothek zugreifen!
    Geändert von genodeftest (04.11.10 um 17:32 Uhr)
     

  5. #5
    Steven19 Steven19 ist offline Mitglied
    Registriert seit
    Sep 2010
    Beiträge
    20
    Ja ich muss die DLL irgendwie in die Library einbinden.

    Meine Code sieht so aus:

    public static native boolean Ini_WinIo_QueryPerformance();
    static
    {
    System.loadLibrary("emis_pbl.dll");
    }
    public static native boolean Shutdown_WinIo();
    public static native boolean Ini_ParalleleSchnittstelle(short Nr);
    public static native boolean Ini_Schrittmodus_StromabsenkungAuf(short Schrittmodus, short Stromabsenkung);
    public static native boolean Vecout(int xStep, int yStep, int zStep, int Startfreq, int Arbeitsfreq, int Rampenlaenge);
    public static native boolean Referenzfahrt(int i, int ROffset, int refSpeedStart2, int refSpeedWork2, int refRamp2);
    public static native boolean Stromabsenkung();
    public static native boolean SetzeAusgang(short modus);
    public static native boolean SetzeE1Verknuepfung(boolean bAktion);
    public static native boolean SetData(short pin, short modus);
    public static native boolean GetData(short pin);
    public static boolean erg;

    Wenn ich das Programm so laufen lass dann kommt eben der Fehler das die emis_pbl.dll in der java.path.library fehlt.
    Jetzt möchte ich die DLL die oben im Anhang ist irgendwie einbinden.

    Was meinst du mit Header der DLL? Versteh ich nicht.


    Gruß Steffen
     

  6. #6
    Avatar von zeja
    zeja zeja ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Sep 2006
    Beiträge
    2.962
    Beim starten deines Programm mußt du den library.path mitgeben:
    java -Djava.library.path=c:\programme\emis_pbl.dll MeinProgramm

    Und bei dem loadLibrary-Aufruf mußt du das .dll weglassen.
     

Ähnliche Themen

  1. Library in eigne Library einbinden
    Von Memphis01 im Forum Java
    Antworten: 3
    Letzter Beitrag: 18.08.10, 22:56
  2. Probleme mit java.library.path
    Von eagle1985 im Forum Java
    Antworten: 3
    Letzter Beitrag: 08.02.10, 17:28
  3. Antworten: 1
    Letzter Beitrag: 29.10.09, 14:57
  4. Antworten: 0
    Letzter Beitrag: 11.07.07, 16:47
  5. Library erstellen die eine Library nutzt
    Von melmager im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 27.10.04, 12:00