如何在Python中获取va_-list的内容?

2024-10-01 09:27:32 发布

您现在位置:Python中文网/ 问答频道 /正文

(我在窗户上。)

我在Python中有一个回调函数,它是从DLL调用的(我使用ctypes模块)。一个参数的类型为^{}。有没有办法弄到里面的东西?我不知道如何读取正确的内存位置(here是一个描述)。在

如果有一个用于Python的va_list解析器,那么最好的方法就是。或包含用于获取va_list参数的函数的DLL。在

有人知道解决办法吗?在

我找到了一个解决方案:

您可以使用ctypes来调用标准的C函数,比如vsprintf,它接受一个va_list参数。(格式化打印是我想要做的)。在

我的代码是:

bufferString = ctypes.create_string_buffer(4096)
ctypes.cdll.msvcrt.vsprintf(bufferString, fmt.raw, ctypes.cast(ap, ctypes.c_void_p))
print ctypes.cast(bufferString, ctypes.c_char_p)

fmt.raw指向格式字符串,ap是{}的地址。在


Tags: 模块函数类型参数rawctypeslistap