在python中加载DLL时出错,而不是有效的win32应用程序

时间:2013-11-07 23:49:03

标签: python dll ctypes

我正在尝试在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中是否存在可能出错的内容?

3 个答案:

答案 0 :(得分:41)

正如评论所示,这可能是一个架构问题。

如果您使用的是64位Python的32位DLL,反之亦然,那么您可能会收到错误。

由于我之前遇到过您的错误,我建议您尝试使用32位Python加载DLL。

答案 1 :(得分:0)

我有同样的问题。我通过使用VS2015 x64 Native Tools命令提示符编译我的C代码来修复。现在一切都是64位。

答案 2 :(得分:0)

如果您没有所有其他必需的dll,也可能出现该错误。确保您拥有dll依赖的所有其他.dll文件。正如其他人指出的那样,Dependency Walker是一个很好的工具。