在Python中,我有一个ctypes.c_char_p的字符串,' Hello,world'。似乎python会自动将其编码为一个数字(请参阅下面的ipython控制台)。如何从ctypes.c_char_p对象中检索字符串,即' Hello,world'?
In [45]: from ctypes import c_char_p
In [46]: c_char_p("Hello, World")
Out[46]: c_char_p(4508383228)
答案 0 :(得分:3)
正如评论中已经提到的那样,虽然可能没有某些可能要求的那样明确,但.value
属性从ctypes.c_char_p
转换为Python字符串。
此代码将Python字符串转发到ctypes.c_char_p
,然后返回到Python字符串:
>>> p = c_char_p("Hello, World")
>>> p
c_char_p(140323010068388)
>>> type(p)
<class 'ctypes.c_char_p'>
>>> s = p.value
>>> s
'Hello, World'
>>> type(s)
<type 'str'>