JNA: Invalid sizeof type 4

Times

Bekanntes Mitglied
Hallo,

ich muss für eine DLL eine Jar Bibliothek erstellen um mit der DLL kommunizieren zu können.
Dazu verwende ich JNA (Falls es noch eine andere Möglichkeit gibt, bitte schreiben!).

Im ersten Ansatz habe ich die JNA.jar einfach meinem Projekt hinzugefügt und alles hat nach einigen Bit Indifferenzen funktioniert.
Im nächsten Ansatz wollte ich das ganze direkt mit dem SourceCode von JNA ausprobieren, aber das funktioniert nicht mehr so wie gewollt.

Dazu habe ich den Source von GitHub heruntergeladen und in mein Projekt geladen. Der erste Fehler war das im src Folder von JNA die jnidispatch.dll nicht vorhanden war, ich diese aber aus der jna.jar herauskopieren konnte, wobei ich denke das hier auch irgendwo der Fehler liegt, denn diese jnidispatch.dll liefert mir einen Fehler beim abfragen von sizeof(bool).

Anders formuliert:
In der Native.java in com/sun/jna/ wird im static Block folgendes durchgeführt:
Java:
loadNativeDispatchLibrary();
POINTER_SIZE = sizeof(TYPE_VOIDP);
LONG_SIZE = sizeof(TYPE_LONG);
WCHAR_SIZE = sizeof(TYPE_WCHAR_T);
SIZE_T_SIZE = sizeof(TYPE_SIZE_T);
BOOL_SIZE = sizeof(TYPE_BOOL);

Bei "BOOL_SIZE" läuft das ganze auf folgenden Fehler:
Code:
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: Invalid sizeof type 4
    at com.sun.jna.Native.sizeof(Native Method)
    at com.sun.jna.Native.<clinit>(Native.java:150)

Also der oben dargestellte Codeabschnitt soll der mit jnidispatch.dll zusammenarbeiten und mittels Konstanten (TYPE_VOIDP, TYPE_LONG...) die tatsächliche Anzahl an Bytes für jenen Datentyp auslesen.
Um das ganze besser zu verstehen ist hier auch der SourceCode der DLL, welcher auch von JNA zur Verfügung gestellt wurde.
C:
JNIEXPORT jint JNICALL
Java_com_sun_jna_Native_sizeof(JNIEnv *env, jclass UNUSED(cls), jint type)
{
  switch(type) {
  case com_sun_jna_Native_TYPE_VOIDP: return sizeof(void*);
  case com_sun_jna_Native_TYPE_LONG: return sizeof(long);
  case com_sun_jna_Native_TYPE_WCHAR_T: return sizeof(wchar_t);
  case com_sun_jna_Native_TYPE_SIZE_T: return sizeof(size_t);
  case com_sun_jna_Native_TYPE_BOOL: return sizeof(bool);
  default:
    {
      char msg[MSG_SIZE];
      snprintf(msg, sizeof(msg), "Invalid sizeof type %d", (int)type);
      throwByName(env, EIllegalArgument, msg);
      return -1;
    }
  }
}

Was mir noch unerklärlich ist woher diese Konstante "com_sun_jna_Native_TYPE_BOOL" kommt, denn diese finde ich weder in der .c Datei noch in der .h Datei zu der DLL.
Kann mir nur erklären das das genau der Pfad ist an welcher auch die Native.java Datei in meinem Projekt liegt (com/sun/jna/Native.java/TYPE_BOOL). Für die anderen 4 Dateitypen funktioniert das ganze ja auch, nur bei TYPE_BOOL springt er in C (in der DLL) in den default Fall rein.

Danke & Grüße
Times
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Interpreter-Fehler Fehler beim Verschlüsseln Invalid AES key length Allgemeine Java-Themen 1
M Lambda "invalid method reference no suitable method found" Allgemeine Java-Themen 2
D Invalid Method declaration Allgemeine Java-Themen 5
S Invalid Chunk Exception Allgemeine Java-Themen 3
P JavaDoc und Backslashes: "Invalid unicode" Allgemeine Java-Themen 3
R VM-Error - BadWindow (invalid Window parameter) Allgemeine Java-Themen 4
K class invalid for deserialization Allgemeine Java-Themen 2
X sax parse exception invalid XML character Allgemeine Java-Themen 4
B Invalid escape sequenze Allgemeine Java-Themen 17
T PDF drucken: "invalid flavor" Allgemeine Java-Themen 8
F Invalid or Corrupt Jarfile! Allgemeine Java-Themen 3
K Cipherproblem: Invalid key length Allgemeine Java-Themen 7
M javax.mail – Sending failed – Invalid Addresses Allgemeine Java-Themen 8
M java: unexpected type Allgemeine Java-Themen 2
BinFox Type-Parameterverwirrung Allgemeine Java-Themen 7
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
K Wildcard und class type Allgemeine Java-Themen 9
bueseb84 required a bean of type that could not be found. Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
E javax.mail sene Type ändern Allgemeine Java-Themen 2
P List<Type> Konvertieren in List<List<Type>> Allgemeine Java-Themen 3
Tarrew Generics - Type erasure Allgemeine Java-Themen 5
S Welcher Schleifen type für eine Berechnung Allgemeine Java-Themen 7
D Type herausfinden Allgemeine Java-Themen 15
S Type mismatch: cannot convert from Object to float Allgemeine Java-Themen 3
V Wildcard aus Parameter in return type Allgemeine Java-Themen 2
P Default constructor cannot handle exception type Allgemeine Java-Themen 6
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
I Library für High Performance Mime Type Erkennung Allgemeine Java-Themen 8
P Mime Type aus Stream lesen Allgemeine Java-Themen 5
J BufferedImage aus PNG Files haben keinen Type Allgemeine Java-Themen 4
G POI: Leere Zelle nimmt keinen Type an Allgemeine Java-Themen 8
S Type safety Warnings beim casten von Generics Allgemeine Java-Themen 6
M Type-Cast Allgemeine Java-Themen 3
B Warum return type Object ? Allgemeine Java-Themen 4
G Generics in Map. Type of value abhängig vom key Allgemeine Java-Themen 3
S Innerer Type einer generischen Collection herausfinden? Allgemeine Java-Themen 13
S Collection Type Allgemeine Java-Themen 8
zilti NetBeans 6.0: neuen File Type definieren Allgemeine Java-Themen 2
S anderer Mime Type bei xml-Datei Allgemeine Java-Themen 2
G Error: Hashtable Type safety: The method put(Object, Object) Allgemeine Java-Themen 6
A serial Version UID field of type long Allgemeine Java-Themen 5
G Enclosing Type Allgemeine Java-Themen 3
G [quote]the type HashMap is not generic; it cannot be paramet Allgemeine Java-Themen 4
C Generic Type ermitteln Allgemeine Java-Themen 3
padde479 The static method sleep(long) from the type Thread should. Allgemeine Java-Themen 2
H References to generic type Test.A<typ> should be param Allgemeine Java-Themen 5
byte Generic Type einer List zur Laufzeit rausfinden? Allgemeine Java-Themen 4
T Generics, Enumerations und Type-Casts Allgemeine Java-Themen 13
K The method clone() from the type Object is not visible. Allgemeine Java-Themen 9
C REG_BINARY Type in Windows Registry ausgeben ? Allgemeine Java-Themen 4
M Content-Type setzen und auslesen? Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben