【发布时间】:2012-10-14 12:38:54
【问题描述】:
我想定义一个在 DLL 中定义的结构或变量类型的实例,以将其发送到使用“ctypes”的函数。我知道我可以在 python/ctypes 中定义类似的变量/结构类型,然后发送它们,但是在我的代码中定义所有类型需要很多时间。有什么方法可以像 ctypes 中的 c_int 或 c_char_p 一样声明内部 DLL 类型的变量?
【问题讨论】:
我想定义一个在 DLL 中定义的结构或变量类型的实例,以将其发送到使用“ctypes”的函数。我知道我可以在 python/ctypes 中定义类似的变量/结构类型,然后发送它们,但是在我的代码中定义所有类型需要很多时间。有什么方法可以像 ctypes 中的 c_int 或 c_char_p 一样声明内部 DLL 类型的变量?
【问题讨论】:
您使用哪个 DLL?
对于 winapi.dll,ctypes 还提供了一些有用的结构,如 HWND、RECT、MSG、... 请参阅ctypes.wintypes 了解更多信息。
您还可以检查 ctypeslib,它会解析 C 文件的结构和数据类型。
根据我的经验,在从 python 脚本/程序调用 dll 时,我几乎不会写下超过几个 C 结构,所以这不是问题。如果您必须使用大量的 DLL 内结构,您可能需要改用 SWIG。
【讨论】: