我们正在尝试使用DLL连接外部硬件,但遇到了一个我们目前无法解决的问题。我们的平台是Windows 7,64位,我们使用Python 2.7,也是64位,编写驱动程序。我们使用的DLL也是64位的(我们用PE Deconstructor进行了双重检查)。我们使用ctypes来加载DLL,具体如下:
然而,我们收到了错误消息
我们将非常感激您的帮助回答,
最好的祝福,Florian
import ctypes
ctypes.cdll.LoadLibrary('dllpath')
...
然而,我们收到了错误消息
[Error 193] %1 is not a valid Win32 application
。如果我们尝试加载32位DLL或使用命令pydll
、oledll
或windll
,同样会出现这种情况。您有什么想法可以帮助我们加载DLL或解决方案吗?我们将非常感激您的帮助回答,
最好的祝福,Florian
cdll
和windll
是加载器,它们包装了CDLL
和WinDLL
,以缓存已加载的库并使访问Windows DLL变得更加容易,当基本文件名是语法上有效的标识符时,例如cdll.msvcr100
。LoadLibrary
方法只调用包装类而不缓存库,因此您可以使用ctypes.CDLL('dllpath')
。 - Eryk SunCDLL
和WinDLL
之间没有区别。后者只是在函数指针上设置一个标志,以使用stdcall
而不是cdecl
。在64位Windows中,无论如何都没有区别,因为导出函数只有一种标准调用约定。 - Eryk Sun