我有一个包含这样的方法的dll
f(DWORD a, DWORD b, ulong *c)
我有一个在C#中声明此方法的示例,如下所示
f(uint a, ref uint b, ref IntPtr c)
现在我想在Java中实现相同的功能。 java不支持uint和ref。我添加了JOOU库以拥有UInteger,但我不知道如何将其作为参考传递。
使用jna库,我们可以传递IntByReference而不是ref uint。调用方法后,我们只需将其更改为无符号值因此,在Java中,我们有
f(UINT a, IntByReference int_b, PointerByReference c)
long b = int_b & 0xFFFFFFFFL;