tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von genodeftest
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
596
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Eimsbush87 Eimsbush87 ist offline Grünschnabel
    Registriert seit
    Apr 2011
    Beiträge
    2
    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
    Code :
    1
    2
    3
    4
    5
    
    // 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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    // 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!
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    probier mal statt
    Code java:
    1
    
    System.out.println("Data Type: "+type);

    lieber
    Code java:
    1
    
    System.out.println("Data Type: " + new String(type));
    oder
    Code java:
    1
    
    System.out.println(Arrays.asList(b));

    Denn mit dieser Zeile gibst du (so wie sie bei dir im Code steht) den Hash-Code des byte-Arrays 'type' aus, nicht den Inhalt.
    Eimsbush87 bedankt sich. 
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  3. #3
    Eimsbush87 Eimsbush87 ist offline Grünschnabel
    Registriert seit
    Apr 2011
    Beiträge
    2
    Vielen Dank genodeftest,

    du bist spitze! Ich habe es mit
    Code java:
    1
    
    System.out.println("Data Type: " + new String(type));

    hinbekommen!
     

Ähnliche Themen

  1. Daten einfügen über sql-Datei
    Von campari im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 09.01.07, 19:28
  2. Daten einfügen über sql-Datei
    Von campari im Forum PHP
    Antworten: 0
    Letzter Beitrag: 08.01.07, 21:05
  3. Zufällige Daten aus DB holen
    Von hemorieder im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 28.04.05, 15:12
  4. Daten aus DB Tabelle holen
    Von Stgt im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 12.11.04, 21:12
  5. Antworten: 2
    Letzter Beitrag: 21.10.04, 10:07

Stichworte