JNA:如何将指针传递给局部变量?

时间:2018-01-30 21:58:34

标签: java pointers jna local-variables

我有两个局部变量:

Pointer output;
int output_len; /* or better `size_t output_len;` */

我需要将指向这些变量的指针传递给JNA函数的(相同的命名参数):

    public int libcomcom_run_command(
            byte[] input,
            size_t input_len,
            PointerByReference output,
            Pointer output_len,
            byte[] file,
            PointerByReference argv,
            PointerByReference envp,
            int timeout);

如何?

1 个答案:

答案 0 :(得分:1)

new PointerByReference(pointerValue);
new IntByReference(intValue);

你实际上无法取得地址"本地Java变量的。 XByReference类型为有问题的值分配内存,然后引用该内存的地址。

在调用之后,您可以调用XByReference.getValue()来查看对该内存的任何更改。