本文介绍了Python:转换与ctypes.c_void_p()一起使用的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
给出一个字符串:
msg =hello world
pre>
如何将它定义为
ctypes.c_void_p()
数据类型?
以下代码产生无法转换为指针异常:
data = ctypes.c_void_p(msg)
code>必须是C中的一个
void *
类型,因为它被传递给一个DLL。
我假设有一种使用
struct
包打包/解压缩字符串的方法,但不幸的是我非常不熟悉这个过程。解决方案这样的东西?使用
ctypes.cast
?>>> import ctypes
>>> p1 = ctypes.c_char_p(hi mom)
>>> ctypes.cast(p1,ctypes.c_void_p)
c_void_p(11133300)
given a string:
msg="hello world"
How can I define this as a
ctypes.c_void_p()
data type?the following code yields a "cannot be converted to pointer" exception:
data=ctypes.c_void_p(msg)
data
is required to be avoid*
type in C, because it is being passed to a DLL.I'm assuming there is a way to pack/unpack the string using the
struct
package, but unfortunately I am very unfamiliar with this process.解决方案Something like this? Using
ctypes.cast
?>>> import ctypes >>> p1= ctypes.c_char_p("hi mom") >>> ctypes.cast( p1, ctypes.c_void_p ) c_void_p(11133300)
这篇关于Python:转换与ctypes.c_void_p()一起使用的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!