我有一个 C# 应用程序,它从 32 位 COM (ActiveX) DLL 加载组件(以及相关的帮助函数)。
这一切都很好,但我的处理非常占用内存(特别是在多处理器机器上运行时),所以我希望能够在进程外加载 ActiveX DLL。我的理解(尽管我的 COM 相当生疏)这将允许我直接从 64 位应用程序通过 DCOM 访问所有功能。
但是,似乎没有任何方法可以鼓励 VS2010 允许我在进程外加载 DLL。它会自动生成必要的胶水代码,并且似乎是通过相当于带有 CLSCTX_INPROC_SERVER 的 CoCreateInstance 来加载它的。有没有办法告诉它把它作为 CLSCTX_LOCAL_SERVER 加载(我相信它会在它自己的过程中启动它)?
编写我自己的包装器 DLL/EXE 包装 32 位 DLL 然后允许我将包装器加载为进程外服务器的唯一方法是什么?这样做的痛苦可能是无法以如此简单的方式使用该功能。
当然有更简单的方法吗?
任何帮助将不胜感激!