将Python实例转换为ctypes.c_void_p

时间:2018-02-22 19:20:59

标签: python c ctypes

我试图将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(),但没有一个能够正常工作。我怎样才能实现我想做的事情?提前谢谢。

1 个答案:

答案 0 :(得分:3)

使用data = ctypes.py_object(foo)

ctypes.py_object代表C中的PyObject *类型。