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

时间:2012-07-25 03:07:23

标签: python dll 32bit-64bit

当我使用CDLL在32位python中调用32位dll时,它运行良好。 但不幸的是,在我的64位win7操作系统中只安装64位python,当它调用它时:它不是一个有效的win32应用程序!

我可以在64位python中使用32位dll或exe吗?或者我必须安装32位python?

1 个答案:

答案 0 :(得分:29)

64位EXE无法加载32位DLL。 (反之亦然:32位EXE无法加载64位DLL。)毕竟,他们无法就指针的大小达成一致 - 如果EXE在4GB边界之上分配内存并希望通过该指针,会发生什么情况指向32位DLL的指针?

你必须要么:

  1. 制作64位版本的DLL;
  2. 使用32位版本的Python;或
  3. 在单独的(32位)EXE中托管DLL,并使用某种形式的进程间通信从64位Python进程与之通信。