Esto funciona bien en Windows 7 con Python 2.7:WindowsError: [Error 126] cuando se carga un archivo DLL con ctypes
lib = ctypes.cdll.LoadLibrary('prov_means')
provmeans = lib.provmeans
La biblioteca prov_means.DLL está en mi directorio de trabajo. Exporta una función de C simple, independiente provmeans() sin dependencias.
Cuando intento lo mismo en Windows XP y Python 2.7 me sale
Traceback (most recent call last):
File "D:\python\Auxil\src\auxil.py", line 130, in <module>
lib = ctypes.cdll.LoadLibrary('prov_means')
File "C:\Python27\lib\ctypes\__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "C:\Python27\lib\ctypes\__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 126] The specified module could not be found
he tratado de copiar el archivo DLL para Windows \ System32 y también entrar en el nombre de ruta completo
"d:\\python\\auxil\\src\\prov_means"
con y sin la extensión ".DLL". Nada funciona.
Gracias David. Eso sonó muy plausible cuando compilé en la máquina de Windows 7 con Visual Studio 2010 Express, que no está en la máquina de destino. Instalé el tiempo de ejecución de C++ en la máquina de destino como se sugirió y reinicié. Mismo error por desgracia. – MortCanty
Puede usar Dependency Walker en modo de perfil para verificar esto. Pero consideraría reconstruir el archivo DLL con '/ MT' solo para verificar que no sea esa la causa del problema. –
Derecha, acaba de reconstruir con/MT y ahora se ejecuta en el objetivo. ¡Muchas gracias! – MortCanty