无法在 python (3.4) 中加载 dll 文件

not able to load dll file in python (3.4)

我对 C++ 的经验为零,但对 python 的经验还算可以。根据另一个线程中的说明,我正在尝试加载一个 dll 库并按如下方式进行:

import ctypes
my_dll = ctypes.WinDLL ("c:\whatever\whatever.dll")

我得到的回复是:

Traceback (most recent call last):
  File "C:\Users\xxx\Anaconda3\lib\site-
    packages\IPython\core\interactiveshell.py", line 3035, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-6-8b21ed13fe33>", line 1, in <module>
    mydll = cdll.LoadLibrary(dll_path)
  File "C:\Users\xxxx\Anaconda3\lib\ctypes\__init__.py", line 429, in LoadLibrary
return self._dlltype(name)
  File "C:\Users\xxx\Anaconda3\lib\ctypes\__init__.py", line 351, in __init__
    self._handle = _dlopen(self._name, mode)
    OSError: [WinError 193] %1 is not a valid Win32 application

OS 是 64 位 Windows 10。 谁能指出我哪里出了问题?

谢谢。

如果dll存在并找到,可能是32位和64位不匹配。对于 C++ 应用程序,可执行文件和加载的 dll 必须是相同的体系结构(都是 32 位或都是 64 位),这同样适用于 Python 可执行文件。这意味着如果你 运行 64 位 Python 它可能无法加载 32 位 dll,反之亦然(实际上有一种方法可以通过创建辅助 32 位进程并使用IPC,但我不确定 Python 是否这样做)。

即检查 dll 和可执行文件 (Python) 是否具有相同的体系结构(位大小)。