簡體   English   中英

在 64 位 Python 進程中加載 32 位和 64 位 dll

[英]Loading 32-bit and 64-bit dll's in the 64-bit Python process

我有一個 python 腳本(在 Windows 上),它取決於相應的 32 位 dll 和 64 位 dll 的不同包裝器。 有沒有辦法,比如沙盒機制,可以讓我從同一環境(64 位 Z23EEEB4347BDD26BDDZ6B7EE9A3B75 進程)加載 64 位 dll 和 32 位 dll

為了進一步理解,這里有一個例子:假設我有一個 python 腳本 test.py。 test.py 正在調用 fun1 和 fun2。 fun1 在 fun1_test.pyd(32-bit) 中定義,而 fun2 在 fun2_test.pyd(64-bit) 中定義。

這是我嘗試過的:由於 64 位環境可以理想地運行 32 位 dll,我嘗試使用 64 位 python 進程執行 python 腳本。 但我注意到以下錯誤:“WindowsError: [Error 193] %1 is not a valid Win32 application”

當我運行依賴walker時,它提供了對CPU(x86 vs x64)不匹配dll的引用。

有沒有更清潔的方法來實現這一目標?

我認為不可能從 64 位進程導入 32 位 dll 。 指針大小不同。

最容易找到 64 位版本並使用它。

這不是 python 特定的,但這個問題解釋了這個問題: Convert 32 bit dll to 64 bit dll

Here is an article were the author decompiled a 32bit program and rewrote it for 64 bit: http://www.developingthefuture.net/disassembling-decompiling-and-modifying-executables/ That isn't a python dll though.

(我也將此標記為重復項,也只是想提供一些建議。如果這不正確,請告訴我。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM