python-CFFI:TypeError:ctype’char []’的初始化程序必须是字节或列表或元组,而不是str

使用CFFI library for Python,我试图将Python字符串哄骗到char *中,以便将其传递给接受char *的C函数.我似乎无法弄清楚什么是正确的咒语.

考虑以下示例:

>>> from cffi import FFI
>>> ffi = FFI()
>>> ffi.new("char[]", "bob")

结果是:

TypeError: initializer for ctype 'char[]' must be a bytes or list or tuple, not str

以下内容也不起作用:

>>> ffi.new("char*", "bob")

它说:

TypeError: initializer for ctype 'char' must be a bytes of length 1, not str

解决方法:

o11c已经解决了这个问题:

明确选择一种编码,例如“ bob” .encode(‘ascii’).这似乎在Python 3中只是必要的.

上一篇:javascript-如何将PureScript ADT转换为FFI的JS字符串“枚举”


下一篇:Javascript-为什么EnumPrintersA和EnumPrintersW请求相同的内存量?