从64位应用程序加载32位共享库?

时间:2011-04-19 18:25:42

标签: c++ shared-libraries

我有一个编译为32位的共享库。我可以在64位应用程序中使用它还是需要将共享库编译为64位?

2 个答案:

答案 0 :(得分:13)

不,您无法通过常规方法在64位应用程序中加载32位库。

有一些聪明的黑客,例如有一个32位应用程序加载库并通过IPC接口导出函数,但是如果你可以选择将库编译为64位,那么就是是最好的选择。

答案 1 :(得分:5)

您无法动态或静态地从64位应用程序加载32位库,反之亦然。

我知道有很多解决方法:

  1. 制作64位版本的DLL
  2. 制作32位版本的应用程序
  3. 引入COM代理对象(也称为代理)作为通信中介。 Described here
  4. 在单独的(32位)EXE中托管DLL并使用IPC技术
  5. 有许多进程间通信(IPC)技术。以下是一些例子: