使用Python加载DLL时出现错误193

4
我们正在尝试使用DLL连接外部硬件,但遇到了一个我们目前无法解决的问题。我们的平台是Windows 7,64位,我们使用Python 2.7,也是64位,编写驱动程序。我们使用的DLL也是64位的(我们用PE Deconstructor进行了双重检查)。我们使用ctypes来加载DLL,具体如下:
import ctypes

ctypes.cdll.LoadLibrary('dllpath')

...

然而,我们收到了错误消息[Error 193] %1 is not a valid Win32 application。如果我们尝试加载32位DLL或使用命令pydlloledllwindll,同样会出现这种情况。您有什么想法可以帮助我们加载DLL或解决方案吗?
我们将非常感激您的帮助回答,
最好的祝福,Florian

你的python.exe是否在系统变量路径中可见? - Aleksandar
听起来像是位数不匹配的问题。可能是DLL文件或其依赖项中的问题。例如,可以使用Dependency Viewer进行检查。 - David Heffernan
1
cdllwindll是加载器,它们包装了CDLLWinDLL,以缓存已加载的库并使访问Windows DLL变得更加容易,当基本文件名是语法上有效的标识符时,例如cdll.msvcr100LoadLibrary方法只调用包装类而不缓存库,因此您可以使用ctypes.CDLL('dllpath') - Eryk Sun
1
关于加载DLL,CDLLWinDLL之间没有区别。后者只是在函数指针上设置一个标志,以使用stdcall而不是cdecl。在64位Windows中,无论如何都没有区别,因为导出函数只有一种标准调用约定。 - Eryk Sun
所有依赖项都存在吗?如果 DLL 需要其他 DLL 来运行,那可能是原因。 - Mark Tolonen
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接