当我使用 CDLL 在 32 位 python 中调用 32 位 dll 时,它运行良好。 但是很遗憾在我的64位win7操作系统中只安装了64位python,调用的时候转过来:不是一个有效的win32应用!
我可以在 64 位 python 中使用 32 位 dll 或 exe 吗?还是我必须安装 32bit python 代替?
最佳答案
64 位 EXE 无法加载 32 位 DLL。 (反之亦然:32 位 EXE 无法加载 64 位 DLL。)毕竟,它们无法就指针的大小达成一致——如果 EXE 分配的内存超过 4GB 边界并想要传递它会发生什么指向 32 位 DLL 的指针?
您必须:
- 制作 64 位版本的 DLL;
- 使用 32 位版本的 Python;或
- 将 DLL 托管在单独的(32 位)EXE 中,并使用某种形式的进程间通信从您的 64 位 Python 进程中与其通信。这里是 an example of using IPC to let a 64-bit Python process talk to a 32-bit DLL.
关于python - 我可以在 64 位 python 中使用 32 位 dll 或 exe 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642134/