2024-09-24 04:22:06 发布
网友
我有一个SWIG C++函数,它希望函数指针(WNDPROC),并给它一个已经被Python函数包住的函数。ctypes.WINFUNCTYPE. 在
在我看来,这应该是兼容的,但是SWIG的类型检查抛出了一个异常,因为它不知道ctypes.WINFUNCTYPE类型实际上是WNDPROC。在
如何将我的回调传递给SWIG以便它理解它?在
我没有一台windows机器来检查这个问题,但是我认为您需要创建一个typemap来告诉swig如何将PyObject包装器转换为WNDPROC:
// assuming the wrapped object has an attribute "pointer" which contains // the numerical address of the WNDPROC %typemap(in) WNDPROC { PyObject * addrobj = PyObject_GetAttrString($input, "pointer"); void * ptr = PyLong_AsVoidPt(addrobj); $1 = (WNDPROC)ptr; }
我没有一台windows机器来检查这个问题,但是我认为您需要创建一个typemap来告诉swig如何将PyObject包装器转换为WNDPROC:
相关问题 更多 >
编程相关推荐