2013-06-12 237 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。 所以这取决于。

相关问题