我想在Python中使用C库,我使用ctypes来实现这一点。你知道吗
我在库中定义了要访问的结构,我想在Python程序中创建这些结构的多个实例,并用其中一个实例覆盖C库中的结构,让它计算,然后用实例中的另一个实例覆盖它。 基本上,我想用其他参数覆盖链接到库的结构的字段,而不必手动更改每个参数。你知道吗
示例:
from ctypes import *
class Example(Structure):
_pack_ = 1
_fields_ = [("One", c_uint8),
("Two", c_double),
("Three", c_double)]
lib = cdll['./test.dll']
libInit = lib['init']
libStep = lib['step']
libClose = lib['close']
libInit()
In1 = Example
In1.One = 2
In1.Two = 10
In1.Three = 23
In2 = Example
In2.One = 3
In2.Two = 4
In2.Three = 50
In = Example.in_dll(lib, "Example")
In = In1
libStep()
Out = Example.in_dll(lib, "Example")
In = In2
libStep()
Out = Example.in_dll(lib, "Example")
libClose()
我知道像我在示例中那样覆盖In参数是行不通的,因为它会删除到C库的链接。有没有办法用某种方式覆盖它?你知道吗
在结构类中创建一些辅助对象。您必须修改
in_dll
变量,但可以使其更简单:测试.c
Python:
输出:
相关问题 更多 >
编程相关推荐