Error loading DLL in python, not a valid win32 application

jeffpkamp picture jeffpkamp · Nov 8, 2013 · Viewed 38.7k times · Source

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?

Answer

ABM picture ABM · Jan 12, 2015

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.