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?
WinDLL
switches to the stdcall calling convention. It should be clear from the header which convention to use. – Eryk Sun'p'
and'd'
are ok, but you'll save yourself headaches in general. Or just use forward slashes. The Windows file API translates them to backslashes, except for long Unicode paths that use the'\\?\'
prefix. – Eryk Sunplatform.architecture()
returns whether the Python process is 32-bit or 64-bit, but this is just based on the pointer size, which you can do withctypes.sizeof(ctypes.c_void_p)
. For the DLL you can use Dependency Walker or Visual Studio's dumpbin. – Eryk Sun