在Python中加载DLL时出现Windows错误1114

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Python中加载DLL时出现Windows错误1114相关的知识,希望对你有一定的参考价值。

我目前正在尝试将一些代码从32位Windows XP计算机移植到64位Windows 10计算机。我需要在我的python代码中导入自己开发的C dll,如下所示:

    from ctypes import *
    [...]
    self.inter_test_dll = windll.LoadLibrary("my.dll")

    self.w = QtWidgets.QWidget()
    self.wid = self.w.winId()
    self.wid.setsize(64)
    print(self.wid)
    self.inter_test_dll.dll_load_window(int(self.wid), 'test')
    self.inter_test_dll.dll_connect(2, self.callback)
    [...]

一旦dll加载了一个神秘的程序,程序就会崩溃

    Windows Error 1114

这意味着dll在初始化时崩溃了。我在我的个人计算机(64位Windows 7)上试过我的dll,没问题,一切正常。我已经在C程序中的同一个64位Windows 10机器上尝试了这个DLL,LoadLibrary(“my.dll”)也失败但LoadLibraryEx(“my.dll”,NULL,DONT_RESOLVE_DLL_REFERENCE)确实有效。

当我在我的dll上运行一个依赖性walker时,似乎错过了一些2到4个深度级别的dll,但是奇怪的是,当从C程序中正确调用它时,它似乎不会影响它的工作。

所以我的问题是,有没有办法在Python中实例化我的dll而不深入检查它的依赖关系?如果没有,有没有办法修改我的Windows行为,默认情况下跳过该检查?

非常感谢 !

答案

感谢您的评论,我已经解决了我的问题。

WxWidgets已在2天前更新。我已经用这个新版本重新编译了我的dll并且bug已经消失了。

对不起,我找不到更一般的方法来解决这个问题。

以上是关于在Python中加载DLL时出现Windows错误1114的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 窗体设计器中加载窗体时出现“找不到类型”错误

在托管 DLL 中加载 C++ DLL 时出现 EEFileLoadException

在python中加载.db文件时出现“没有这样的表”错误

当我在 python 中加载数据帧时出现 UnicodeDecodeError [重复]

安装vsphere client时出现“错误2229 无法在SQL查询中加载表”等错误

在 django 开发中加载静态文件时出现 404 错误