Python:转换字符串以用于ctypes.c_void_p()
问题内容:
给定一个字符串:
msg="hello world"
如何将其定义为ctypes.c_void_p()
数据类型?
以下代码产生“无法转换为指针”异常:
data=ctypes.c_void_p(msg)
data
必须是void*
C中的类型,因为它正在传递给DLL。
我假设有一种使用struct
包来打包/解包字符串的方法,但是不幸的是,我对此过程并不熟悉。
问题答案:
像这样吗 使用ctypes.cast
?
>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)