我试图将Python对象转换为C void指针,以便可以从C API调用它,但是以下代码似乎不起作用 来自ctypes import *
class myclass:
def __init__(self):
self.val = 6
return
foo = myclass()
data = c_void_p(foo)
输出:
Traceback (most recent call last):
File "test.py", line 26, in <module>
data = c_void_p(foo)
TypeError: cannot be converted to pointer
我也尝试过pointer()和byref(),但没有一个能够正常工作。我怎样才能实现我想做的事情?提前谢谢。
答案 0 :(得分:3)
使用data = ctypes.py_object(foo)
。
ctypes.py_object
代表C中的PyObject *
类型。