gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:38:01 31 4
gpt4 key购买 nike

我正在尝试在 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/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com