11

我正在尝试实现一个用 C# 编写的“out of proc”COM 服务器。我该怎么做呢?

我需要 C# 代码从我的主 C++ 应用程序中“脱离 proc”,因为我无法将 .NET 运行时加载到我的主进程空间中

为什么?:
我的 C++ 代码位于加载到许多不同客户 EXE 中的 DLL 中,其中一些使用不同版本的 .NET 运行时。由于只能将一个运行时加载到单个进程中,因此我最好的选择似乎是将我的 C# 代码放入另一个进程中。

4

4 回答 4

7

您可以使用 System.EnterpriseServices.ServicedComponent 创建 COM+ 组件。因此,您将能够创建进程外和进程内(客户端)组件激活以及池、远程处理、作为 Windows 服务运行等的所有 COM+ 优势。

于 2008-09-02T09:41:09.230 回答
1

在这里我们可以读到它是可能的,但是 exe 将作为库加载,而不是像 exe 一样在它自己的进程中启动。不知道这对你有没有问题?如果您确实想让它像一个真正的进程外 com 服务器一样,它还包含一些可能的解决方案。但也许使用另一种进程间通信方式会更好。像 .Net 远程处理。

于 2008-08-27T17:25:28.770 回答
0

我不能推荐这种方式,但您可以为您的 C# 库创建一个可调用 COM 的包装器,然后创建一个 VB6 ActiveX exe 项目,将调用委托给您的 C# 库。

于 2008-08-27T17:19:04.853 回答
0

为什么不能将 .net 运行时加载到进程空间中?可以托管 .net 运行时并使用 COM 调用 .net。

于 2008-08-28T02:00:07.007 回答