![](/img/trans.png)
[英]ctypes: Correctly subclass c_void_p for passing and returning custom data types, by example
[英]Is it acceptable to subclass c_void_p in ctypes?
我正在与一个返回不透明指针的库接口。 可以将c_void_p子类表示为ctypes并为这种c_void_p的特殊样式提供类型检查吗?
进行此类型检查的一种简单方法可能是创建一些任意的ctypes.Structure
class _Opaque(ctypes.Structure):
pass
声明相关函数的返回类型为该结构的指针
lib.f.restype = ctypes.POINTER(_Opaque)
以及再次接受这种指针的函数的参数类型:
lib.g.argtypes = [ctypes.POINTER(_Opaque)]
现在, ctypes
确保g
的参数是f
之前返回的指针。 (请注意,我使用前导_
标记_Opaque
于此模块。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.