Eimsbush87
Grünschnabel
Hallo Gemeinde,
ich stehe im Moment vor einem Problem welches mich die letzten 3 Tage heftigst beschäftigt und komme einfach nicht auf eine vernünftige Lösung
Ich möchte mittels JNA über eine dll welche ich schon erfolgreich eingebunden habe auf Daten in einer Datei zugreifen. Hierbei ermöglicht die dll den Zugriff auf die Daten.
Ich bin nun schon soweit, dass ich einzelne Funktionen aufrufen kann und hierfür auch die Werte bekomme, jedoch schaffe ich es nicht an Werte heran zu kommen dessen Variable (aus java) vom Typ char[256] als Pointer übergeben werden sollen, sodass ich von der dll einen nullterminierten String zurückbekomme.
Anbei ausschnitte aus dem Quellcode
Das hier geht
für die nachfolgende Funktion sollte man mit C/C++ über die dll mit
long GetType_C(char &type);
rankommen.
Bei mir sieht das in java so aus und geht nicht
wäre wirklich super wenn mir da jemand helfen könnte!!
Vielen Dank im Voraus!
ich stehe im Moment vor einem Problem welches mich die letzten 3 Tage heftigst beschäftigt und komme einfach nicht auf eine vernünftige Lösung
Ich möchte mittels JNA über eine dll welche ich schon erfolgreich eingebunden habe auf Daten in einer Datei zugreifen. Hierbei ermöglicht die dll den Zugriff auf die Daten.
Ich bin nun schon soweit, dass ich einzelne Funktionen aufrufen kann und hierfür auch die Werte bekomme, jedoch schaffe ich es nicht an Werte heran zu kommen dessen Variable (aus java) vom Typ char[256] als Pointer übergeben werden sollen, sodass ich von der dll einen nullterminierten String zurückbekomme.
Anbei ausschnitte aus dem Quellcode
Das hier geht
Code:
// Zugriffsfunktion der dll
int GetCoordCount();
// Ausgeben der Werte
System.out.println("\nNumber of measure points: "+hy2nc.INSTANCE.GetDataCount()); // hier passt das Ergbnis
für die nachfolgende Funktion sollte man mit C/C++ über die dll mit
long GetType_C(char &type);
rankommen.
Bei mir sieht das in java so aus und geht nicht
Code:
// Zugriffsfunktion der dll
int GetType_C(byte [] type);
// Ausgeben der Werte
byte[] type;
int bufferSize = 256;
type = new byte[bufferSize];
System.out.println("\nGetType reply: "+hgy2nkc.INSTANCE.GetType_C(type)); // hier bekomme ich als reply message einen code der im Handbuch der dll sagt: erfolgreiche Ausführung
System.out.println("Data Type: "+type); // hier bekomme ich: Data Type: [B@dd5b
// und das passt nicht zu dem was herauskommen sollte
wäre wirklich super wenn mir da jemand helfen könnte!!
Vielen Dank im Voraus!