2017-09-09 13 views
0

私のクライアントは私にいくつかの機能を持つdllを与えました。タイプのマッピング:JNAのwchar_t *&とchar *&

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

私はJNAを使用していると私は私のインタフェースに対応するJavaメソッドを書くことトリングています::次のようにそれらの2つは、残念ながら

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

次返しごみ

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

次の戻り値およびIndexOutOfBoundsException

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

型wchar_t * &とchar * &のマッピングに使用する正しいjavaクラスを推奨する人や、データを正しく取得する方法はありますか?

おかげ ダミアンは

答えて

0

は、以下のマッピングは私のために正しく

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

仕事そして私は、データを取得するために、以下の使用

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