我是ctypes的初学者,我无法弄清楚如何在python中将char数组转换为字符串。我已经开始使用:
create_string_buffer(bytes(var, 'utf8'))
填充数组,但没有运气使用“byref()”将其作为字符串返回。
如果有人知道你会成为一个救生员。提前谢谢!
答案 0 :(得分:0)
ctypes 页面:[Python]: ctypes - A foreign function library for Python。
没有看到一些代码就很难说,但这里有一个例子:
>>> import sys >>> import ctypes >>> "Python {:s} on {:s}".format(sys.version, sys.platform) 'Python 3.5.2 (default, Nov 23 2017, 16:37:01) \n[GCC 5.4.0 20160609] on linux' >>> src = "some dummy Python string" >>> src_charp = ctypes.create_string_buffer(src.encode()) >>> dst_initial = b"Just " >>> dst_charp = ctypes.create_string_buffer(len(dst_initial) + len(src) + 1) >>> dst_charp <ctypes.c_char_Array_25 object at 0x7fe6c41209d8> >>> dst_charp.value b'' >>> for idx, c in enumerate(dst_initial): ... dst_charp[idx] = c ... >>> dst_charp.value b'Just ' >>> ctypes.CDLL(None).strcat(dst_charp, src_charp) 32414128 >>> dst_charp <ctypes.c_char_Array_25 object at 0x7fe6c41209d8> >>> dst_charp.value b'Just some dummy Python string' >>> dst = dst_charp.value.decode() >>> dst 'Just some dummy Python string'
备注强>:
byref