Python 为什么类型错误:使用cffi时需要整数?

Python 为什么类型错误:使用cffi时需要整数?,python,cffi,Python,Cffi,我用的是cffi,我发现了一个奇怪的错误。我的函数获取一个字节数组并解密它,然后从中创建一个人类可读的字符串 buffer = [b'\x02', b'+', .... and more] c_string = ffi.new("char[]", 64) clib.decode_my_string(buffer, len(buffer), c_string, len(c_string)) print(c_string) 我们希望看到的是一条英语字符串。Python说: TypeError: a

我用的是cffi,我发现了一个奇怪的错误。我的函数获取一个字节数组并解密它,然后从中创建一个人类可读的字符串

buffer = [b'\x02', b'+', .... and more]
c_string = ffi.new("char[]", 64)
clib.decode_my_string(buffer, len(buffer), c_string, len(c_string))
print(c_string)
我们希望看到的是一条英语字符串。Python说:

TypeError: an integer is required
以下是这些事物的定义:

print(clib.decode_my_string)
print(c_string)
print(buffer)
print(len(c_string))
print(len(buffer))
显示:

<cdata 'uint8_t(*)(uint8_t *, uint8_t, char *, uint16_t)' 0x7f6965aa7a50>
<cdata 'char[]' owning 64 bytes>
[b'\x02', b'+', .... and more]
64
13

为我们打印
len(c_字符串)
len(缓冲区)
。另外,向我们展示错误行号的完整回溯(并澄清对应的行),为什么有一个表示单个字节的
字节的
对象列表?听起来你好像误解了术语“bytearray”。包括完整的错误消息。我添加了两个变量的len和完整的回溯。为我们打印
len(c_字符串)
len(缓冲区)
。另外,向我们展示错误行号的完整回溯(并澄清对应的行),为什么有一个表示单个字节的
字节的
对象列表?听起来你好像在什么地方误解了“bytearray”这个词。包括完整的错误消息。我添加了两个变量的len和完整的回溯。
Traceback (most recent call last):
  File "/home/me/myproject/utilitieslib/tests/test_mymodule.py", line 187, in test_decode_my_string
    x = mymodule.decode_my_string(response)
  File "/home/me/myproject/utilitieslib/mymodule.py", line 242, in decode_my_string
    clib.decode_my_string(buffer, len(buffer), c_string, len(c_string))
TypeError: an integer is required