2013-06-12 235 views
1

我有一個從第三方獲得的32位DLL。他們沒有64位版本。我希望加載到64位Python的dll。要做到這一點,我需要一個64位的DLL。有沒有工具將32位DLL轉換爲64位DLL或者這是不可能的?如果不可能,那麼我想必須使用32位python。從32位C DLL創建64位DLL

+1

你猜對了 –

回答

2

只有供應商可以這樣做,除非您可以訪問DLL的源代碼。它必須重新編譯爲64位。

我想你將不得不使用32位的蟒蛇......

1

32位和64位DLLS有不同ABIscalling conventions。您無法將32位DLL加載到64位進程中或以其他方式加載。

正如評論中所述,您必須從源代碼重新編譯。

+0

我明白,但我可以創建一個32位DLL的64位DLL。 – Baz

+0

您需要使用64位編譯器重新編譯源代碼 –

+0

問題不在於ABI或調用約定。問題是單個進程不能混合使用32位和64位的模塊 –

1

你不能沒有源代碼創建32位的一個64位的DLL。

但是你可以創建一個適配器加載32位的DLL,並通過某種進程間通信提供給它的功能的訪問本機的32位應用程序(如命名管道)

當然,這在某些情況下可能沒有意義,您可能更喜歡使用32位Python。 所以這取決於。

相關問題