我遇到了专有dll的问题,这无法阻止我在这里发布代码。幸运的是,无论如何,问题减少到两行:
import ctypes
windll.LoadLibrary("K:\\Patch\\To\\DLL.dll")
此代码适用于Python 2.7,但不适用于Python 3.5。在3.5投掷中:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "K:\Miniconda\envs\...\lib\ctypes\__init__.py", line 429, in LoadLibrary
return self._dlltype(name)
File "K:\Miniconda\envs\...\lib\ctypes\__init__.py", line 351, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 1114] Eine DLL-Initialisierungsroutine ist fehlgeschlagen
(抱歉是德语。不是我的决定)
英文错误应该是:
OSError: [WinError 1114] A dynamic link library (DLL) initialization routine failed
我用&#34; C:\ Windows \ System32 \ aadtb.dll&#34;测试了我的Python 3.5解释器。并且它可以工作,因此它可以加载其他DLL。
我需要加载的DLL由第三方和封闭源提供。我们获得DLL的公司并不感到有责任感,也没有帮助。
那么我的问题归结为:Python 2.7和Python 3.5之间有什么区别?
我知道他们改变了报道错误的方式,但我找不到任何其他内容。
编辑: DLL和两个python版本都使用64位寻址。