Winapi 我们可以跨越COM服务器(exe)的单独实例吗

Winapi 我们可以跨越COM服务器(exe)的单独实例吗,winapi,com,Winapi,Com,我希望有多个测试客户端,并希望关联一个com服务器exe来为每个测试客户端提供服务 到目前为止,我能看到的是在我的系统中只有一个COM服务器exe正在运行,它为我的所有测试客户机提供服务 请建议如何在COM中实现这一点 问候 Ashish您的第一个服务器可能会调用CoRegisterClassObject,这意味着第二个客户端会找到一个可用的类对象(使用CoGetClassObject,可能通过CoCreateInstance) CoRegisterClassObject具有控制重用的可选标志。

我希望有多个测试客户端,并希望关联一个com服务器exe来为每个测试客户端提供服务

到目前为止,我能看到的是在我的系统中只有一个COM服务器exe正在运行,它为我的所有测试客户机提供服务

请建议如何在COM中实现这一点

问候
Ashish

您的第一个服务器可能会调用
CoRegisterClassObject
,这意味着第二个客户端会找到一个可用的类对象(使用
CoGetClassObject
,可能通过
CoCreateInstance


CoRegisterClassObject
具有控制重用的可选标志。您想要的声音
REGCLS\u MULTI\u SEPARATE

COM服务器在其coreRegisterClassObject()调用中指定REGCLS时决定此操作。客户端应用程序无法推翻该决定。感谢您提供的信息。。。但我没有在COM exe中的任何位置定义此方法。。但是,我可以看到同一COM服务器的proxystub dll项目中存在“DllRegisterServer”。我不这么认为。首先你说你有一个EXE服务器(进程外),现在它是一个DLL(进程内)?在这种情况下,这些是完全不同的事情。我的意思是说,当我们创建一个com exe(进程外)时,ATL向导将创建另一个项目,用于生成代理存根dll。哦,对了,非标准接口,需要封送代码。是的,那一定要去某个地方。然而,真正的EXE必须在某个地方注册类工厂。可能在ATL代码中,但是。请建议我一些方法来解决下面提到的问题。我有多个客户端exe,我希望每个客户端exe都有一个专用的com对象,它将为该特定客户端exe的请求提供服务器…我应该如何创建我的com服务器在这种情况下,我尝试了STA和MTA,但没有结果。我无法在这两个exe之间使用正常的IPC(共享内存、管道、窗口消息),这就是我选择COM方法解决此问题的原因。