Tag: jna openvr

如何在jna中实现一个联合类型的结构sizeof()

我更新了jvm openvr绑定到最后一个openvr版本1.0.5,但我不确定一件事。 在cpp中,有这个虚拟SetOverlayIntersectionMask函数的IVROverlay类: virtual EVROverlayError SetOverlayIntersectionMask( VROverlayHandle_t ulOverlayHandle, VROverlayIntersectionMaskPrimitive_t *pMaskPrimitives, uint32_t unNumMaskPrimitives, uint32_t unPrimitiveSize = sizeof( VROverlayIntersectionMaskPrimitive_t ) ) = 0; 我的怀疑是最后一个论点。 VROverlayIntersectionMaskPrimitive_t : struct VROverlayIntersectionMaskPrimitive_t { EVROverlayIntersectionMaskPrimitiveType m_nPrimitiveType; VROverlayIntersectionMaskPrimitive_Data_t m_Primitive; }; 是一个具有枚举类型和联合类型变量的结构,称为VROverlayIntersectionMaskPrimitive_Data_t : typedef union { IntersectionMaskRectangle_t m_Rectangle; IntersectionMaskCircle_t m_Circle; } VROverlayIntersectionMaskPrimitive_Data_t; 正在由上面的两个类实现, IntersectionMaskRectangle_t和IntersectionMaskCircle_t 现在,枚举转换为Int但后者? 既然它应该是一个指针,我猜它应该是Pointer.SIZE ? 但是这是我的实现,其中VROverlayIntersectionMaskPrimitive_Data_t是一个抽象类: abstract class VROverlayIntersectionMaskPrimitive_Data_t : Structure { […]

Jna,指针已经映射到代理接口

我正在尝试做openvr java绑定的kotlin端口 ,并将其更新到1.0.3 我已经着手编写IVRSystem结构/类 我手动编写了所有的方法,以确保Intellij中的自动翻译器不会有任何错误 我摆脱了来自getFieldOrder()不同字段的所有错误,但是现在仍然出现错误: Exception in thread "main" java.lang.IllegalStateException: Pointer native@0xffffffff already mapped to Proxy interface to native function@0xffffffff (IVRSystem$GetEyeToHeadTransform_callback). Native code may be re-using a default function pointer, in which case you may need to use a common Callback class wherever the function pointer is reused. at com.sun.jna.CallbackReference.getCallback(CallbackReference.java:124) at com.sun.jna.CallbackReference.getCallback(CallbackReference.java:107) at com.sun.jna.Pointer.getValue(Pointer.java:430) […]