Vielen Dank für eure Hilfe.
Jetzt funktioniert es bei mir!
Der Trick mit dem Pointer war es, in der Deklaration der Methode als Datentyp "IntByReference" zu wählen.
Das Interface zu der DLL sieht demnach so aus:
Das laden der DLL und aufrufen der Funktionen dann in dieser Form:
Gruß
TDO
Jetzt funktioniert es bei mir!
Der Trick mit dem Pointer war es, in der Deklaration der Methode als Datentyp "IntByReference" zu wählen.
Das Interface zu der DLL sieht demnach so aus:
Java:
import com.sun.jna.*;
import com.sun.jna.ptr.IntByReference;
public interface TANGODLL extends Library {
public int LSX_CreateLSID(IntByReference ILSID);
public int LSX_ConnectSimple(int lLSID,int lAnInterfaceType,String pcAComName,int lABaudRate,boolean bAShowProt);
public int LSX_MoveRel (int lLSID,double dX,double dY,double dZ,double dA,boolean bWait);
public int LSX_Disconnect(int lLSID);
public int LSX_FreeLSID(int lLSID);
}
Das laden der DLL und aufrufen der Funktionen dann in dieser Form:
Java:
String DLLPath = "C:\\Users\\TDO\\Documents\\NetBeansProjects\\Dauerlauf\\Tango_DLL.dll";
TANGODLL TANGOINST = (TANGODLL) Native.loadLibrary(DLLPath, TANGODLL.class);
String COMPort = "COM14";
int returnfunction = 0;
int ILSID = -1;
IntByReference pILSID = new IntByReference(-1);
returnfunction = TANGOINST.LSX_CreateLSID(pILSID);
ILSID = pILSID.getValue();
Gruß
TDO