Вопрос

Как зарегистрировать COM-объект, написанный на Managed C ++, в качестве SingleUse? Regasm не имеет возможности. Я предполагаю, что это может быть так просто, как определить атрибут в AssemblyInfo.cpp, но я не могу его найти.

Я написал VB6 ActiveX EXE, и он работает так, как я хочу - то есть каждый запрос интерфейса создает новый работающий сервер.

Нужно ли прибегать к переносу моего управляемого C ++ COM в VB6? Должен быть более простой способ.

Это было полезно?

Решение

Похоже, что обслуживаемые компоненты содержат ключ к моей проблеме.

http://oreilly.com/catalog/comdotnetsvs/chapter/ch10.html

Как только я наследую ServicedComponent в пространстве имен System.EnterpriseServices, сделайте regsvcs на dll, а затем измените пул в dcomcnfg, чтобы он был больше единицы - все работает. Другая проблема заключается в том, чтобы регистрируемый компонент Managed C ++ компилировался с / clr: pure, а не просто / clr. Я еще не закончил проект, но примеры проектов, которые я построил на пути, показывают, что он должен работать таким образом. Я думаю, что оберну свое решение Managed C ++ в сборку C # ...

Теперь, когда я почти закончил проект, еще одна вещь ... Вы должны быть на сервере O \ S, чтобы пул заработал.

Спасибо за ваше руководство ...

Другие советы

Как использовать один или несколько экземпляров объекта OLE в MFC с помощью Visual C ++

http://support.microsoft.com/kb/141154

Это может дать вам некоторые подсказки:

Использование управляемых элементов управления в качестве элементов управления ActiveX
http://blogs.msdn.com/andreww/archive/2008/11/24/using-managed-controls-as-activex-controls.aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top