在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 中加载数据帧时出现 UnicodeDecodeError [重复]