python中capsule对象与C语言void*对象的转换

   在python3.2中,为了在扩展模块传递指针对象,使用了capsule对象,如在PySide中调用QWidget.WinId()返回的就是一个capsule对象,里面封装了一个窗口句柄。我们可以使用如下代码来得到里面封装的窗口句柄对象:

PyCapsule_GetPointer = cdll.python3.PyCapsule_GetPointer
PyCapsule_GetPointer.argtypes = [py_object,c_char_p]
PyCapsule_GetPointer.restype = c_void_p
hWnd = PyCapsule_GetPointer(aQWidget.winId(),None)


你可能感兴趣的:(python中capsule对象与C语言void*对象的转换)