当我使用CDLL在32位python中调用32位dll时,它运行良好。
但不幸的是,在我的64位win7操作系统中只安装了64位python,当调用它时:它不是一个有效的win32应用程序!
我可以在64位python中使用32位dll或exe吗?或者我必须安装 32 位 python?
64 位 EXE 无法加载 32 位 DLL。 (反之亦然:32 位 EXE 无法加载 64 位 DLL。)毕竟,它们无法就指针的大小达成一致——如果 EXE 分配的内存超过 4GB 边界并希望传递该内存,会发生什么情况指向 32 位 DLL 的指针?
您必须:
- 制作 DLL 的 64 位版本;
- 使用 32 位版本的 Python;或者
- 将 DLL 托管在单独的(32 位)EXE 中,并使用某种形式的进程间通信从 64 位 Python 进程与其进行通信。这是使用 IPC 让 64 位 Python 进程与 32 位 DLL 对话的示例。 https://msl-loadlib.readthedocs.io/en/stable/interprocess_communication.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)