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

hjh*_*nju 18 python dll 32bit-64bit

当我使用CDLL在32位python中调用32位dll时,效果很好.但不幸的是,在我的64位win7操作系统中只安装了64位python,当它转过来时:它不是一个有效的win32应用程序!

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

Joe*_*ite 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进程与它进行通信.

  • 64位Windows可以运行32位进程,但每个进程必须是64位或32位; 你不能在一个地址空间内混合两者.如果要将应用程序作为32位运行,则必须将其编译为32位应用程序.(那些指针大小再次.如果编译应用程序以期望指针大小为64位,它将无法使用32位指针,反之亦然.)如果应用程序编译为32位,它运行作为32位应用程序; 如果它被编译为64位,它将作为64位应用程序运行(在64位操作系统上,并且在32位操作系统上根本不运行). (6认同)