c#中64位应用程序中的32位dll

你好
我想在c#中创建一个64位应用程序,我不想在其中使用在C ++ builder(32bit)中创建的dll。 但是当我尝试加载dll时,应用程序崩溃了。 当建立在32位时,它的工作原理。 有没有办法在64位应用程序中使用此DLL?

不,这是不可能的。 Windows中的进程是32位或64位,它只能加载匹配的DLL。 任何加载不匹配的DLL的尝试都将失败并产生错误。

如果需要匹配32位和64位代码,则需要使用多个进程。 在这种情况下,虽然我只是使应用程序32位或DLL 64位

您是要构建64位应用程序,还是要构建将在64位环境中运行的应用程序? 即使目标平台是x86,您的应用程序也可以在64位环境中完美运行。

您无法在Windows上将32位DLL加载到64位进程中。

我自己从未尝试过,但您可能能够创建一个单独的32位应用程序,该应用程序可以在不同的进程中运行并充当DLL的代理。 然后,您的应用程序可以运行64位,并通过WCF进行远程过程调用与DLL通信。

如果性能是一个问题,那么最好的办法是尽可能以64位重建DLL。