I am trying to load a DLL in python to call functions.
import ctypes from ctypes import * dsusb = ctypes.WinDLL('c:\python27\dsusb.dll')
I get the following error in my stack.
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
I also tried cdll with the same code.
I looked up the error and windows says it's due to a path containing spaces... which I do not think is really the problem...
Am I loading this DLL wrong or is there something that might be wrong in the dll?
As the comments suggest, it could be an architecture problem.
If you're using a 32bit DLL with 64bit Python, or vice-versa, then you'll probably get errors.
Since I've had your error before, I recommend trying to load your DLL with 32bit Python.
One way to test if a *.dll-file is 32bit or 64bit, is to use dumpbin.exe
, e.g.
dumpbin /headers dsusb.dll ... FILE HEADER VALUES 14C machine (x86) ...
machine (x86)
means 32bit, machine (x64)
means 64bit.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With