模拟python ctypes byref参数2 2.6之前的版本

2024-10-01 04:53:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pythonctypes与一些C代码进行接口。在

对于我要调用的特定C函数,我需要传递一个指向结构中某个字段的指针。字段不是第一个字段。看起来byref()函数会这样做,所以我尝试使用

 byref(obj,myObject.data.offset)

其中myObject的定义如下:

^{pr2}$

但是,这个调用失败了,因为它需要运行的系统只运行pythonversion2.5,并且在2.6中添加了添加可选offset参数的功能。在

我试过byref(obj.data),但结果是错误:TypeError: byref() argument must be a ctypes instance, not '_ctypes.CField'。在

如何在版本<;2.6中实现所需的结果(总是要求2.6是不实际的,因为这需要在不总是可以升级的系统中工作)。在


Tags: 函数代码objdata定义系统ctypes结构
1条回答
网友
1楼 · 发布于 2024-10-01 04:53:21

在2.5中,ctypes具有^{},因此可以使用以下内容:

obj = myObject()
arg = c_char_p(addressof(obj) + myObject.data.offset)

相关问题 更多 >