python - 我可以在 64 位 python 中使用 32 位 dll 或 exe 吗?

标签 python dll 32bit-64bit

当我使用 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 的指针?

您必须:

  1. 制作 64 位版本的 DLL;
  2. 使用 32 位版本的 Python;或
  3. 将 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/

相关文章:

python - 如何将 cv::Mat 转换为 python

c# - COM dll 的有效 .cs 文件

c - 将旧的 'C' 库从 32 位移植到 64 位时出现文件 I/O 问题

python - MatrixSymbol 中的 Sympy 下划线以 pretty-print 方式更改外观

python - SQLite 语句中无法识别的标记

linux - 如何从c代码中提取所有库函数的堆栈大小?

DLL 自行卸载

ruby exec powershell 窗口

为 32 位或 64 位编译

python - python中变量的范围