我正在尝试在 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 。
我查找了错误,Windows 说这是由于路径包含空格...我认为这不是真正的问题...
是我加载这个 DLL 错误还是 DLL 中可能有问题?
正如评论所暗示的,这可能是一个架构问题。
如果您在 64 位 Python 中使用 32 位 DLL,反之亦然,那么您可能会收到错误。
由于我之前遇到过您的错误,因此我建议尝试使用 32 位 Python 加载您的 DLL。
测试 *.dll 文件是 32 位还是 64 位的一种方法是使用dumpbin.exe
, e.g.
dumpbin /headers dsusb.dll
...
FILE HEADER VALUES
14C machine (x86)
...
machine (x86)
表示32位,machine (x64)
意思是64位。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)