Python:转换字符串以用于ctypes.c_void_p()

The*_*ego 7 python dll ctypes types

给一个字符串:

msg="hello world"
Run Code Online (Sandbox Code Playgroud)

如何将其定义为ctypes.c_void_p()数据类型?

以下代码产生"无法转换为指针"异常:

data=ctypes.c_void_p(msg)
Run Code Online (Sandbox Code Playgroud)

data需要是void*C中的类型,因为它被传递给DLL.

我假设有一种方法可以使用包打包/解压缩字符串struct,但不幸的是我对这个过程非常不熟悉.

S.L*_*ott 10

像这样的东西?用ctypes.cast

>>> import ctypes
>>> p1= ctypes.c_char_p("hi mom")
>>> ctypes.cast( p1, ctypes.c_void_p )
c_void_p(11133300)
Run Code Online (Sandbox Code Playgroud)