windll c_int python ctypes

python - windll - c_int()



Error de Windows:[Error 126] No se pudo encontrar el módulo especificado (8)

Cuando veo cosas como esta, generalmente es porque hay barras invertidas en la ruta que se convierten.

Por ejemplo, lo siguiente fallará, porque / t en la cadena se convierte en carácter TAB.

>>> import ctypes >>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:/tools/python271/lib/ctypes/__init__.py", line 431, in LoadLibrary return self._dlltype(name) File "c:/tools/python271/lib/ctypes/__init__.py", line 353, in __init__ self._handle = _dlopen(self._name, mode) WindowsError: [Error 126] The specified module could not be found

Hay 3 soluciones (si ese es el problema)

a) Usa barras dobles ...

>>> import ctypes >>> ctypes.windll.LoadLibrary("c://tools//depends//depends.dll")

b) usar barras diagonales hacia adelante

>>> import ctypes >>> ctypes.windll.LoadLibrary("c:/tools/depends/depends.dll")

c) usar cadenas RAW (antes de la cadena con r

>>> import ctypes >>> ctypes.windll.LoadLibrary(r"c:/tools/depends/depends.dll")

Si bien este tercero funciona, de vez en cuando he tenido la impresión de que no se considera "correcto" porque las cadenas RAW estaban destinadas a expresiones regulares. Lo he estado usando para las rutas en Windows en Python durante años sin problema :))

Estoy cargando un dll en python usando el siguiente código:

if os.path.exists(dll_path): my_dll = ctypes.cdll.LoadLibrary(dll_path)

Pero continuamente estoy recibiendo el siguiente error

Error de Windows: [Error 126] No se pudo encontrar el módulo especificado

dll está presente en la ruta especificada, pero no entendí por qué obtengo el error.


En Windows, es posible. Necesitará instalar: Visual C ++ Redistributable para Visual Studio 2015. Tuve el mismo problema e instalé ambas versiones (Windows x86 y Windows x64). Al parecer ambos son necesarios para que funcione.


Intenté especificar la ruta dll de diferentes maneras (propuesta por @markm), pero nada me ha funcionado. Arreglado el problema copiando dll en la carpeta de script. No es una buena solución, pero está bien para mis propósitos.


Me encontré con el mismo problema en Win10 32bit OS. Resolví el problema cambiando la DLL de depuración a versión de lanzamiento.

Creo que es porque la versión de depuración DLL depende de otra DLL, y la versión de lanzamiento no lo hizo.


También es posible que haya olvidado configurar su directorio de trabajo en eclipse para que sea el local correcto para que se ejecute la aplicación.


Tenga en cuenta que incluso si la DLL está en su camino. Si esa DLL se basa en otras DLL que NO están en su ruta, puede obtener el mismo error. Windows no pudo encontrar una dependencia en este caso. Windows no es realmente bueno para decirle lo que no pudo encontrar, solo que no encontró algo. Depende de usted darse cuenta de eso. La ruta de búsqueda de Windows dll se puede encontrar aquí: http://msdn.microsoft.com/en-us/library/7d83bc18.aspx

En mi caso, estar seguro de que todos los archivos DLL necesarios estaban en el mismo directorio y hacer un os.chdir () a ese directorio resolvió el problema.


Verifique su nombre dll .. no debe contener ninguna letra mayúscula .. debe tener todos los caracteres en minúscula para compilar con éxito