1
9
正如您正确地注意到的,在同一个过程中没有混合比特率的方法。您的32位部件需要一个单独的过程。 我认为托管WCF服务是正确的方式。您的链接只讨论wcfsvchost。我非常确定您可以创建自己的Windows服务,并在32位上托管WCF服务。 看到这个链接: How to host a WCF service in a managed application . 您可以在任何托管应用程序(包括Windows服务)中承载服务,并在您喜欢的位下运行它。 这是在应用程序中自承载WCF服务所需的代码量,假设您刚刚创建了一个名为myservice的新服务,并且应用程序配置已添加到app.config中:
如果您将上述程序显式编译为32位或64位,那么它也可以运行。 |
2
4
一个也没有。点。64位进程中的32位dll=no go。 我所要做的是运行一个32位包装器进程,并使用wcf与之通信——就像您所做的那样。我可以强制操作系统运行32位。 我有一个核心库(tradex.connectivity.core),带有平台独立的.NET代码。我有两个包装器(WrPrPi32.exe,WaPrPix.exe),它们启动并加载独立代码,然后加载类(托管C++)。很有魅力。 对于我来说,这几乎是唯一的方法——不能用CRSS加载32和64位元素。 |
3
1
我知道这个答案可能有点晚了,但不久前我遇到了完全相同的问题(在64位计算机上将32位DLL加载到任意CPU程序集中)。 作为解决方案,我写了 LegacyWrapper . 它基本上是由一个32位的包装器exe加载所需的dll,通过命名管道与应用程序通信。 呼叫如下:
有关详细信息,请参阅 blog post . 编辑: Since Version 2.1, LegacyWrapper also supports loading 64bit DLLs from a 32bit process. |
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |