有没有任何可能的方法在64位c#应用程序中使用32位库

本文关键字:应用程序 32位库 64位 任何可 方法 有没有 | 更新日期: 2023-09-27 18:21:41

我正在为一个以64位运行的应用程序编写一个外接程序,但我需要使用32位库中的对象(这个库只有32位)。我有什么办法可以做到这一点吗?

有没有任何可能的方法在64位c#应用程序中使用32位库

这在.NET中很容易。您只需要一个进程中的所有模块都具有相同的位宽。

因此,您只需启动一个32位的子进程,将所有32位DLL放在那里,然后使用.net的远程处理功能来调用其中的过程。或者,正如COM时代所说:使用进程外组件服务器。

当您需要在32位和64位模块之间传递大量数据时,它会变得更加复杂。您可以设置内存共享,但这需要比正常情况下更多的工作。

这里的规则很简单,但不是你想听到的。单个进程中的所有代码都必须具有相同的比特度。如果您的托管进程是64位的,那么该进程中的所有代码也必须是64位。因此,如果您需要运行32位代码,则必须将32位代码放在一个单独的进程中,并使用某种形式的IPC。