作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试在 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
,例如
dumpbin /headers dsusb.dll
...
FILE HEADER VALUES
14C machine (x86)
...
machine (x86)
表示 32 位,machine (x64)
表示 64 位。
关于python - 在 python 中加载 DLL 时出错,不是有效的 win32 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19849077/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!