调用函数参考

时间:2014-01-19 11:03:07

标签: java javacpp

我正在尝试调用以下c++函数:

uint32_t FunctionName(uint32_t *arg1,uint32_t *arg2,uint32_t *arg3)

但我无法找到在Javacpp中映射此内容的方法。

如何将指针引用传递给函数,以及如何从传递的指针中检索更改后的值?

1 个答案:

答案 0 :(得分:0)

这样的事情应该可以正常工作:

import com.googlecode.javacpp.*;
import com.googlecode.javacpp.annotation.*;

@Platform(include="lib.h", link="lib")
public class Lib {
    static { Loader.load(); }

    public static native int FunctionName(@Cast("uint32_t*") int[] arg1,
                                          @Cast("uint32_t*") int[] arg2,
                                          @Cast("uint32_t*") int[] arg3);
    public static void main(String[] args) {
        int[] arg1 = new int[SIZE1], arg2 = new int[SIZE2], arg3 = new int[SIZE3];
        int ret = FunctionName(arg1, arg2, arg3);
        // do what you need to do with the arguments
    }
}