类型映射:wchar_t *&和char *&在JNA

时间:2017-09-09 08:57:09

标签: java c++ java-native-interface jna

我的客户给了我一些功能。其中两个如下:

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

我正在使用JNA,我想在我的界面中编写等效的Java方法:

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);

任何人都可以推荐使用正确的java类来映射类型wchar_t *&和char *&或者如何正确获取数据?

由于 达明

1 个答案:

答案 0 :(得分: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));