我正在尝试在python中加载DLL来调用函数。
import ctypes
from ctypes import *
dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
我的堆栈中出现以下错误。
C:\Python27>python test.py
Traceback (most recent call last):
File "test.py", line 4, in <module>
dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
File "C:\Python27\lib\ctypes\__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application
我也尝试使用相同代码的cdll。
我查了一下错误,窗户说它是由于一个包含空格的路径......我认为这不是问题......
我是否加载此DLL错误或者dll中是否存在可能出错的内容?
答案 0 :(得分:41)
正如评论所示,这可能是一个架构问题。
如果您使用的是64位Python的32位DLL,反之亦然,那么您可能会收到错误。
由于我之前遇到过您的错误,我建议您尝试使用32位Python加载DLL。
答案 1 :(得分:0)
我有同样的问题。我通过使用VS2015 x64 Native Tools命令提示符编译我的C代码来修复。现在一切都是64位。
答案 2 :(得分:0)
如果您没有所有其他必需的dll,也可能出现该错误。确保您拥有dll依赖的所有其他.dll文件。正如其他人指出的那样,Dependency Walker是一个很好的工具。