2017-09-09 6 views
0

Mon client m'a donné dll avec un couple de fonctions. Deux d'entre eux sont les suivants:Mappage des types: wchar_t * & et char * & in JNA

int  getText(void* page, wchar_t*& pTextOut); 
int  getTextJson(void* page, char*& jsonData); 

J'utilise la JNA et je suis Tring écrire méthode Java équivalent dans mon interface:

int getText(Pointer pdfPage, ?? textOutput); 
int getTextJson(Pointer pdfPage, ?? jsonData); 

Malheureusement, les déclarations suivantes ordures

Pointer outputTextPointer = outputText.getPointer(); 
    String outputStre = outputTextPointer.getString(0, "UTF-8"); 

Les retours suivants et IndexOutOfBoundsException

Pointer outputTextPointer = outputText.getPointer(); 
    String outputStre = outputTextPointer.getStringArray(0); 

Quelqu'un peut-il recommander la bonne classe java à utiliser pour mapper les types wchar_t * & et char * & ou comment obtenir les données correctement?

Merci Damien

Répondre

0

Les applications suivantes fonctionnent correctement pour moi

int getText(Pointer page, PointerByReference pTextOut); 
int getTextJson(Pointer page, PointerByReference jsonData); 

Et puis-je utiliser ce qui suit pour obtenir les données

PointerByReference pTextOut = new PointerByReference(); 
getText(page, pTextOut); 
System.out.println(pTextOut.getValue().getWideString(0));