1

我有一个 python 脚本,它调用从 C 共享库中导出的方法。

如何将 python 类对象作为参数传递给这些方法之一。

蟒蛇代码:

class module(object)
     def __init__(self, param1):
         self._param1 = param1

lib = CDLL("name")
mod = module1(10)
lib.func(pointer(mod))

C 示例代码:

struct module {
  int val;
};
extern "C" void func(struct module* data);

我可以访问存储在 c 函数“func”中的 module1 参数中的值吗?

还有更多想法如何实现此功能?

4

1 回答 1

1

经过一番摸索,找到了一种方法:

你可以在 python 中声明一个结构为:

class POINT(Structure):
    _fields_ = [("x", c_int),
               ("y", c_int)]

并传递此结构的引用。

参考:ctypes 文档页面

于 2012-11-16T10:31:24.940 回答