web-dev-qa-db-ja.com

64ビットPythonで32ビットdllまたはexeを使用できますか?

CDLLを使用して32ビットPythonで32ビットdllを呼び出すと、うまく機能します。しかし、残念ながら、私の64ビットwin7 osでは、64ビットpythonしかインストールされません。これを呼び出すと、効果的なwin32アプリではありません。

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

20
hjhnju

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

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

  1. DLLの64ビットバージョンを作成します。
  2. 32ビットバージョンのPythonを使用します。または
  3. DLLを別の(32ビット)EXEでホストし、何らかの形式のプロセス間通信を使用して、64ビットPython処理する。
29
Joe White