有没有可能在64位c#应用程序中使用32位库?

有没有可能在64位c#应用程序中使用32位库?,c#,.net,32bit-64bit,C#,.net,32bit 64bit,我正在为一个64位运行的应用程序编写一个外接程序,但是我需要使用32位库中的对象(这个库只有32位)。有什么方法可以做到这一点吗?这在.NET中非常容易。您只需要一个进程中的所有模块都具有相同的位宽度 因此,您只需启动一个子32位进程,将所有32位DLL放在那里,并使用.net的远程处理功能调用其中的过程。或者正如COM时代所说:使用进程外组件服务器 当您需要在32位和64位模块之间传递大量数据时,它将变得更加复杂。您可以设置内存共享,但它需要比正常情况更多的工作。这里的规则很简单,但不是您想要

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

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

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


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

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

我相信您可以在32位进程中托管32位库,然后使用进程间通信来来回封送数据。简单回答:这不容易。你真的需要64位模式吗?这是罕见的。简单的解决方法是将EXE项目的平台目标设置为x86。@Hans听起来好像Rick无法控制主机应用程序,因为他正在编写外接程序