22

CDLL を使用して 32 ビット python で 32 ビット dll を呼び出すと、うまく機能します。しかし残念なことに、私の 64 ビット win7 OS では 64 ビット Python しかインストールされません。

64ビットのPythonで32ビットのdllまたはexeを使用できますか? または、代わりに 32 ビットの Python をインストールする必要がありますか?

4

1 に答える 1

35

64 ビット EXE は 32 ビット DLL をロードできません。(逆もまた同様です。32 ビットの EXE は 64 ビットの DLL をロードできません。) 結局のところ、ポインタのサイズについて合意することはできません。EXE が 4GB 境界を超えるメモリを割り当て、それを渡したい場合はどうなるでしょうか。 32 ビット DLL へのポインタ?

次のいずれかを行う必要があります。

  1. DLL の 64 ビット バージョンを作成します。
  2. 32 ビット バージョンの Python を使用します。また
  3. 別の (32 ビット) EXE で DLL をホストし、何らかの形式のプロセス間通信を使用して、64 ビット Python プロセスから対話します。
于 2012-07-25T03:13:05.177 に答える