Python: 将字符串转换为ctypes.c_void_p()使用
给定一个字符串:
msg="hello world"
我该如何将这个字符串定义为 ctypes.c_void_p()
数据类型?
下面的代码会出现“无法转换为指针”的错误:
data=ctypes.c_void_p(msg)
data
在 C 语言中需要是 void*
类型,因为它要传递给一个 DLL(动态链接库)。
我想应该有办法使用 struct
包来打包和解包这个字符串,但不幸的是,我对这个过程非常不熟悉。
1 个回答
13
像这样吗?使用 ctypes.cast
?
>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)