Ocaml 如何将不透明类型与Ctypes绑定
我正在为Quartz事件服务编写OCaml绑定[1] 在某些情况下,我需要绑定不透明类型,如以下代码:Ocaml 如何将不透明类型与Ctypes绑定,ocaml,ctypes,Ocaml,Ctypes,我正在为Quartz事件服务编写OCaml绑定[1] 在某些情况下,我需要绑定不透明类型,如以下代码: typedef CGEventRef _Nullable (*CGEventTapCallBack)(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *userInfo); 这里,cgrevenref是一个指针,指向一个我一无所知的\uu cgrevent结构。我只通过它的接口操作这个类型 如何使用Ctypes
typedef CGEventRef _Nullable (*CGEventTapCallBack)(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *userInfo);
这里,cgrevenref
是一个指针,指向一个我一无所知的\uu cgrevent
结构。我只通过它的接口操作这个类型
如何使用Ctypes绑定这种不透明类型
链接
现在,我将不透明类型上的指针视为空指针
type machport_ref = unit ptr
let machport_ref = ptr void
type event_ref = unit ptr
let event_ref = ptr void
只要不遵从指针,就可以将其作为c_void_p处理
指针只是内存地址,不管它是称为CGEventRef还是其他什么随机指针,或者只是一个简单的空指针,它只将内存地址作为参数。我不确定是否有更好的方法,但这是我过去使用的方法。