# JNA Referenz zu einem Array übergeben in c++ Library(dll)



## Der_AltMann (4. Sep 2020)

Die Funktion in der dll sieht so aus:


```
int getInfo (

unsigned int Index,

unsigned int* Mask,

unsigned int* Serial,

unsigned __int64* licInfo);
```

wichtig ist, dass licInfo ein Array ist mit 4 Elementen.
In Java habe ich die Methode so deklariert:

```
int getInfo(int Index, IntByReference Mask,IntByReference Serial,Memory licInfo);
```

Der methodenaufruf:

```
int Index =0;
IntByReference Mask= null;
IntByReference Serial= null;
Memory LicInfo = new Memory(256);   
int status =dll.INSTANCE.getInfo(Index, Mask, Serial,licInfo);
```

Die dll gibt ein Errorcode zurück, der aussagt, dass die Übergabeparameter falsch sind. Ich bin mir ziemlich sicher, dass es an dem letzten Parameter liegt.
Ich habe auch schon versucht direkt ein long[] zu übergeben oder einen Pointer, allerdings mich wenig erfolg.

Vielen Dank für Hilfe


----------



## mrBrown (4. Sep 2020)

Der der zweite und dritte Parameter sind NULL, sicher dass das richtig ist?


----------



## mihe7 (4. Sep 2020)

Der_AltMann hat gesagt.:


> ```
> Memory LicInfo = new Memory(256);
> int status =dll.INSTANCE.getInfo(Index, Mask, Serial,licInfo);
> ```


Als vierter Parameter wird licInfo (Anfangsbuchstabe klein) angegeben, die Variable darüber heißt aber LicInfo (Anfangsbuchstabe groß). Da scheint auch was nicht ganz zu passen.


----------



## Der_AltMann (7. Sep 2020)

mrBrown hat gesagt.:


> Der der zweite und dritte Parameter sind NULL, sicher dass das richtig ist?


Danke daran hats gelegen


----------

