您好
我想在c#中创建一个64位应用程序,我不想在其中使用在C ++ builder(32bit)中创建的dll。但是当我尝试加载dll时,应用程序崩溃了。当它在32位内置时,它可以工作。有没有办法在64位应用程序中使用此DLL?
答案 0 :(得分:8)
不,这是不可能的。 Windows中的进程是32位或64位,它只能加载匹配的DLL。任何加载不匹配的DLL的尝试都将失败并产生错误。
如果需要匹配32位和64位代码,则需要使用多个进程。在这种情况下,虽然我只是使应用程序32位或DLL 64位
答案 1 :(得分:1)
您是要构建64位应用程序,还是要构建将在64位环境中运行的应用程序?即使目标平台是x86,您的应用程序也可以在64位环境中完美运行。
答案 2 :(得分:0)
您无法在Windows上将32位DLL加载到64位进程中。
我自己从未尝试过,但您可能能够创建一个单独的32位应用程序,该应用程序可以在不同的进程中运行并充当DLL的代理。然后,您的应用程序可以运行64位,并通过WCF进行远程过程调用与DLL通信。
如果性能受到关注,那么最好的办法是尽可能以64位重建DLL。