Load 32-bit shared library from 64-bit application?

别来无恙 提交于 2019-11-27 09:14:25

No, you cannot load a 32-bit library in a 64-bit application through conventional means.

There are some clever hacks out there such as having a 32-bit application which loads the library and exports the functions through an IPC interface, but if you have the option to compile the library as 64-bit, then that is by far the best choice.

cdiggins

You cannot load dynamically or statically a 32-bit library from a 64-bit application or vice versa.

There are a number of work-arounds that I am aware of:

  1. Make a 64-bit version of the DLL
  2. Make a 32-bit version of the application
  3. Introduce a COM proxy object (also called a surrogate) as a communication intermediary. Described here.
  4. Host the DLL in a separate (32-bit) EXE and use an IPC technique

There are a number of inter-process communication (IPC) techniques. Here are a few examples:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!