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

Bri*_*ian 14 c++ shared-libraries

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

Eva*_*ran 14

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

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


cdi*_*ins 5

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

我知道有很多解决方法:

  1. 制作64位版本的DLL
  2. 制作32位版本的应用程序
  3. 引入COM代理对象(也称为代理)作为通信中介.这里描述.
  4. 在单独的(32位)EXE中托管DLL并使用IPC技术

存在许多进程间通信(IPC)技术.这里有一些例子:

  • +1,尽管IPC技术列表中缺少共享内存,共享文件,数据库表,RFC,COM和视频屏幕戳;)换句话说:我建议"有许多进程间通信(IPC) )技巧:"你添加一些"其中一些是:"短语. (2认同)