这在使用Python2.7的Windows7上运行良好:
lib = ctypes.cdll.LoadLibrary('prov_means')
provmeans = lib.provmeans
库prov_表示.DLL在我的工作目录中。它导出一个简单的、独立的C函数provmeans(),而不依赖于它。
当我在Windows XP和Python 2.7上尝试同样的方法时,我得到了
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
我已尝试将DLL复制到Windows\System32并输入完整路径名
"d:\\python\\auxil\\src\\prov_means"
有和没有“.DLL”扩展名。什么都不管用。
当找不到依赖DLL时,将得到错误126。有两个明显的原因:
我怀疑选项1是问题所在,但无论如何,我想我可能会使用该DLL的完整路径来确定。
这样就可以选择选项2,最常见的原因是目标机器没有安装C++运行时。或者在目标机器上安装C++运行时,或者在构建DLL时使用静态链接^ ^{} ,这样就不需要重新分配运行时。
可能,在开发DLL的机器上,安装了C++编译器,并为您安装了运行时。在目标计算机上,如果代码失败,则尚未安装编译器,因此运行时不存在。
你用哪个编译器来建立这个库?可能缺少一些必需的库?您可以检查库与依赖项Walker有哪些依赖项(http://www.Dependency Walker.com/)?
相关问题 更多 >
编程相关推荐