当前位置: 首页 > 面试题库 >

WindowsError:加载带有ctypes的DLL时出现[错误126]

谯英彦
2023-03-14
问题内容

在带有Python 2.7的Windows 7上可以正常工作:

lib = ctypes.cdll.LoadLibrary('prov_means')
provmeans = lib.provmeans

库prov_means.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. 您的DLL依赖于其他找不到的DLL。

我怀疑选项1是问题,但无论如何我想我肯定会使用到该DLL的完整路径。

这样就留下了选项2,最常见的原因是目标计算机没有安装C 运行时。 /MT在构建DLL时,可以在目标计算机上安装C 运行时,也可以使用静态链接,从而无需重新分发运行时。

可能是在开发DLL的计算机上,您已经安装了C ++编译器,并为您安装了运行时。在代码失败的目标计算机上,您尚未安装编译器,因此运行时不存在。



 类似资料:
  • 问题内容: 我已经使用python 3.6在Windows机器上安装了opencv,没有任何问题,使用: 但是当我尝试导入cv2时,出现以下错误 我看过这篇文章 它说cv2不适用于python 3我在想这是否已修复或是否有解决方法 问题答案: 您可以从此非官方站点上在Windows 32位或64位计算机上下载最新的适用于Python 3.6的OpenCV 3.2.0,查找以开头的文件。然后键入以下

  • 我在wicket中使用wicket原型编写了一个wicket应用程序。阿帕奇。但当我添加代码时,它不接受我的页面,并引发运行时异常: 最后一个原因:班级组织。阿帕奇。维克特。一场DefaultPageFactory无法访问ece类的成员。东南方。面条用户界面。登录。带有修饰符“”的登录页面 WicketMessage:无法使用构造函数ece.se.noodle.ui.login.LoginPage

  • 我得到这样的错误消息:线程“awt-eventqueue-0”org.apache.jena.riot.riotexception:[line:1,col:1]Prolog中不允许内容。当我试图通过NetBeans用java加载本地本体文件时?请问这是什么意思,我该怎么做?

  • 问题内容: 我有一个带有一个单一函数的DLL,它具有五个双精度和一个整数: 它重新调整了由三重数组组成的自定义结构计算的res: 要返回值,我这样做: 我已经用MinGW对其进行了编译,并且试图在python中使用它来执行以下操作: 但是,每当我尝试使用这些值调用函数时,都会将其抛出: 我也不知道如何捕获我声明的自定义结构并将其每个元素转换为Python浮点数。我研究了这个PyDocs链接,但无济

  • 问题内容: 我正在尝试在Unix计算机中加载“ rJava”包。在加载之前,我已经使用 在我的R脚本中。 尽管如此,我收到以下错误(以下是错误的一部分): 如您所见,错误显示 / usr / lib / jvm / jre / bin / java:没有这样的文件或目录 。但是我还没有将其设置为 myfilepath 。如何防止安装程序查看此路径? 请帮助。 问题答案: 这很完美。如果将来有人阅读

  • 我们将wro4j与橙色wr4j-taglib一起使用,有时当我们部署它时,会两次加载相同的资源,而不是两个不同的资源,但不是在所有服务器上。下面是中来自我们组的片段。我们使用的是构建时解决方案,因此属性文件和所有级联文件的哈希值是在构建时生成的。 在我们的JSP中,我们将这两个组引用为: 它最终被包含在jsp中,作为: 我们已经检查了坏机器上的JBoss/tmp目录,在部署过程中它似乎被正确清除了