【问题标题】:In Python using ctypes for passing pointer to struct pointer to C function在 Python 中使用 ctypes 将指向结构指针的指针传递给 C 函数
【发布时间】:2017-01-22 23:53:13
【问题描述】:

在 C 库中有:

typedef struct A *  B;
int create_b(B* b);

并且使用 ctypes 我需要 Python 等价于:

B b;
create_b(&b)

结构 A 在 Python 中实现为 class A(ctypes.Structure)

所以,我尝试了:

b = ctypes.POINTER(A)
lib.create_b(ctypes.byref(b))

但它不起作用。有很多类似的问题,但我尝试过的都没有帮助。

【问题讨论】:

  • 它在什么方面不起作用?

标签: python c pointers ctypes


【解决方案1】:

这一行

b = ctypes.POINTER(A)

只是将b 设置为引用同一类型ctypes.POINTER(A),其中真正需要的是使用该类型构造的变量。该行末尾缺少括号:

b = ctypes.POINTER(A)()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 2015-09-09
    • 2021-07-17
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    相关资源
    最近更新 更多