Python: 将字符串转换为ctypes.c_void_p()使用

8 投票
1 回答
7769 浏览
提问于 2025-04-11 20:35

给定一个字符串:

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)

撰写回答