我有一個從第三方獲得的32位DLL。他們沒有64位版本。我希望加載到64位Python的dll。要做到這一點,我需要一個64位的DLL。有沒有工具將32位DLL轉換爲64位DLL或者這是不可能的?如果不可能,那麼我想必須使用32位python。從32位C DLL創建64位DLL
回答
只有供應商可以這樣做,除非您可以訪問DLL的源代碼。它必須重新編譯爲64位。
我想你將不得不使用32位的蟒蛇......
32位和64位DLLS有不同ABIs和calling conventions。您無法將32位DLL加載到64位進程中或以其他方式加載。
正如評論中所述,您必須從源代碼重新編譯。
我明白,但我可以創建一個32位DLL的64位DLL。 – Baz
您需要使用64位編譯器重新編譯源代碼 –
問題不在於ABI或調用約定。問題是單個進程不能混合使用32位和64位的模塊 –
你不能沒有源代碼創建32位的一個64位的DLL。
但是你可以創建一個適配器加載32位的DLL,並通過某種進程間通信提供給它的功能的訪問本機的32位應用程序(如命名管道)
當然,這在某些情況下可能沒有意義,您可能更喜歡使用32位Python。 所以這取決於。
- 1. 從64位代碼訪問32位DLL
- 2. 64位進程中的AnyCPU C#DLL加載32位DLL
- 3. C#和PInvoke到32/64位DLL
- 4. 註冊32位和64位的DLL
- 5. 32位和64位dll的windows服務
- 6. 辦公室64位32位DLL
- 7. 爲64位和32位環境創建DLL
- 8. 爲32位和64位非託管DLL創建託管包裝
- 9. Windows xp 32位d3d9.dll與Windows 7 64位d3d9.dll
- 10. 本地64位DLL的32位Dll包裝
- 11. 是否有可能創建一個64位和32位的DLL? C++
- 12. xp_md5.dll 64位
- 13. 64位fortran DLL
- 14. 32位和64位DLL如何鏈接到相同的C:\ system32 \ kernel32.DLL?
- 15. 32位DLL無法在64位服務器上工作C#
- 16. 32位C#應用程序如何利用64位DLL
- 17. 在C#中使用32位或64位DLL DllImport
- 18. 試圖使用64位MFC DLL的C++ 32位應用程序
- 19. 是否可以從32位應用程序訪問64位dll?
- 20. 找出一個DLL是從Java的32位還是64位
- 21. 從32位進程調用64位DLL上的LoadLibrary
- 22. 32位或64位DLL從.net託管代碼加載
- 23. 我需要從一個64位exe訪問一個32位DLL
- 24. 如何從運行Windows Server 2003 64位版本的C#調用32位C DLL?
- 25. 是否可以創建一個既是32位又是64位的DLL?
- 26. 爲64位dll創建一個32位包裝器。這可能嗎?
- 27. 在64位機器上調用64位Dephi DLL從C#在64位機器上
- 28. 使用Environment.Is64BitProcess從c#應用程序動態調用32位或64位DLL
- 29. 在同一解決方案中開發64位DLL和32位DLL
- 30. Tomcat7tcnative-1.dll:無法在AMD 64位平臺上加載IA 32位.dll
你猜對了 –