Отдельный экземпляр класса ATL COM - PullRequest
2 голосов
/ 10 февраля 2011

У меня есть класс COM. Доступ к нему возможен за пределами моего собственного. Каждый процесс создает свой собственный экземпляр класса. Есть ли способ иметь COM-объект, который используется всеми процессами, которые CreateInstance () это?

COM Singleton - единственное, что приходит на ум. Тем не менее, у меня нет опыта использования этого.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Кодовая база, которую я унаследовал, выполняет это, объявляя статический экземпляр «реализации» в COM-проекте.

Класс COM просто предлагает интерфейс к этому экземпляру. Таким образом, несколько экземпляров класса COM эффективно обеспечивают доступ к одноэлементному объекту реализации на COM-сервере.

Обратите внимание, что для этого часто требуются конструкции синхронизации.

0 голосов
/ 10 февраля 2011

COM-синглтон на внешнем сервере. Если сервер уже реализован в DLL, рассмотрите возможность использования COM + для его настройки как внепроцессного. Таким образом, вы получите лучшее из обоих миров.

...