使用 Python 通过指针访问 DLL 函数
Posted
技术标签:
【中文标题】使用 Python 通过指针访问 DLL 函数【英文标题】:Using Python to access DLL functions with Pointers 【发布时间】:2015-08-14 22:32:52 【问题描述】:我正在尝试构建一个 Python 应用程序来访问专有文件格式(*.abf,由 Axon Instruments 提供)内的数据。指定格式的优秀人员发布了一个 DLL,其中包含可用于打开这些文件、读/写等的函数。
到目前为止一切顺利。我在 SO 和网络上阅读了许多关于使用 ctypes
导入 DLL 的帖子,这似乎工作正常 - 但我试图与之交互的 DLL 中的许多有用函数都将整数指针作为一个参数,而ctypes
没有与之交互的数据类型。
我运气不好?我是否需要用不同的语言编写这个应用程序,或者有什么方法可以在 Python 中一起破解?
谢谢大家, -史蒂夫
【问题讨论】:
【参考方案1】:看得更深。 Ctypes 确实有Pointers。
from ctypes import *
f = c_float()
f_pointer = pointer(f) # full pointer functionality
f_byref = byref(f) # minimalistic pointer just for passing by reference
【讨论】:
感谢@Berserker 的回复!嗯,是的,我应该更具体。 Ctypes 有指针,但只有 char 和 void - link 它指出了我给你的链接中的 pointer() 和 byref() 函数。但是哦,好吧,我更新了我的答案以帮助你更多。以上是关于使用 Python 通过指针访问 DLL 函数的主要内容,如果未能解决你的问题,请参考以下文章
求助python调用dll函数里,关于数据指针和长度应该如何获得呢?