ATL COM类的单个实例

时间:2011-02-10 16:50:37

标签: c++ visual-studio-2010 com atl

我有一个COM类。它可以通过我自己以外的进程访问。每个进程都创建自己的类实例。有没有办法让一个COM对象在CreateInstance()它的所有进程之间共享?

COM Singleton是唯一想到的东西。但是,我没有任何使用它的经验。

2 个答案:

答案 0 :(得分:2)

我继承的代码库通过在COM项目中声明一个静态的“实现”实例来实现这一点。

COM类只提供该实例的接口。这样,COM类的多个实例有效地提供对COM服务器内单例实现对象的访问。

请注意,这通常需要同步构造。

答案 1 :(得分:0)

进程外服务器中的COM单例。如果服务器已在DLL中实现,请考虑使用COM +将其配置为进程外。通过这种方式,您将获得两全其美的效果。