【发布时间】:2021-08-13 14:34:01
【问题描述】:
我正在尝试从我的 python 程序调用 .dll 文件中的一些函数,但我的 python 程序根本找不到这些函数。我使用了几种不同的 ctypes 方法,但没有得到任何结果。
我试过了:
self.dll = ctypes.WinDLL('C:\Windows\System32\DLLNAME')
self.dll = cdll.LoadLibrary('C:\Windows\System32\DLLNAME')
self.dll = CDLL('C:\Windows\System32\DLLNAME')
其中 DLLNAME 是我的 dll 的名称。我已经两次和三次检查了该 dll 是否在 win\sys32 库中并且具有相同的名称。
然后我会下一行说
self.dll.USB_PM()
其中 USB_PM() 是我需要访问的第一个函数的名称。这会引发错误
AttributeError: function 'USB_PM' not found
这是发生在课堂上,因此是自我。包括在那里。
PC:Windows 10
Python:3.9,32 位
DLL:MiniCircuits activex DLL,注册到 RegSvr32
DLL 可以找到here
【问题讨论】:
-
将反斜杠加倍
"c:\\windows\\system32\\<name>"或使用r"c:\windows\system32\<name>(raw string python 3)。否则你只是在转义反斜杠后面的字符。 -
@Neitsa 都试过了,还是找不到功能
-
您使用的是 64 位解释器吗?如果您使用的是 32 位,它将无法看到
\system32,但会在\syswow64中搜索。 -
一切都设置为 32 位版本
-
您能否补充一下您的系统是什么(32 位与 64 位)您的 python 解释器是什么以及您的 DLL 用于哪个系统的问题?