如何确定 DLL 中可用的函数以在 Python 中使用

Posted

技术标签:

【中文标题】如何确定 DLL 中可用的函数以在 Python 中使用【英文标题】:How to determine the functions available in DLL for use in Python 【发布时间】:2016-08-08 20:20:41 【问题描述】:

LabView dll file 将从 Python 2.7 脚本中使用。我们可以做些什么来弄清楚我们可以从 Python 调用的 DLL 文件中的哪些方法,而无需在 LabView 中加载 dll?

另外,我是否需要在运行调用 LabView dll 的 Python 代码的系统上运行 LabView?

【问题讨论】:

不确定我是否得到了这个问题。您可以在命令提示符下nm thedll.dll 并查看符号。 一般来说,我建议不要尝试从 python 调用 LabVIEW DLL。如果 DLL 是纯 C DLL,那么它应该作为普通的独立库工作。但是,如果制造商与 labview.lib 链接,并使用它的内存分配方法(例如创建或调整句柄大小),这将不起作用。 为避免混淆,看起来这个“LabVIEW DLL”是一个打算在from LabVIEW中使用的DLL,而不是在in中创建的DLL i> LabVIEW。您是否尝试过询问制造商这些方法是什么以及它们是否应该可以从其他语言调用? @nekomatic 我需要我的 Python 脚本来与使用 HART 协议的设备进行通信,但我找不到任何用于 HART 的 Python 库,所以下一个最好的办法是使用 LabVIEW DLL制造商... 【参考方案1】:

据我了解,您使用的是使用 LabView 创建的第三方 DLL。在这种情况下,必须安装 LabView 运行时才能使用它,可以免费安装:http://digital.ni.com/public.nsf/allkb/B727BE0152F606D486256A22004DE82D

要找到随 DLL 提供的方法,我会

搜索制造商的文档 查找随 DLL 提供的头文件 使用 DLL 导出查看器之类的工具:http://www.nirsoft.net/utils/dll_export_viewer.html

【讨论】:

以上是关于如何确定 DLL 中可用的函数以在 Python 中使用的主要内容,如果未能解决你的问题,请参考以下文章

如何导出 C# dll 方法/函数以在 C++ 中使用它 [重复]

如何在 Python 中使用 ctypes 卸载 DLL?

C.dll 如何向 Python 公开变量?

确定一个函数在 Python 模块中是不是可用

如何检查 C# 中的库 (dll) 是不是可用?

将图像指针传递给python中的DLL函数