在Python中定义要由C函数填充的数组类型

时间:2015-02-01 16:26:32

标签: python c arrays ctypes

C标题中,“param1”被声明为OUT参数:

long A_API test( 
                        ___OUT_ char param1
                   )

Python代码中,我尝试使用数组,以便test函数有空间来填充此参数。我已导入ctpyes并且:

test_array = bytearray(b'')
importArray = (ctypes.c_char*40)(*test_array)

def callTest():
    result = lib.test(importArray)
    return result

但是test函数没有被执行,它在某处失败了。

不幸的是我只有.so文件,而不是源代码,所以我无法调试代码,但我想我在这里有类型定义问题。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

Python代码应该是根据函数定义的东西:

out_char = ctypes.c_char()
result = lib.test(ctypes.byref(out_char))