Является ли RCW (Runtime Callable Wrapper) единственным способом вызова неуправляемого com-объекта в .net?

1

Я работаю над проектом, где мне нужно вызвать неуправляемый объект COM в проекте С#.net. В этой ссылке я обнаружил, что для вызова COM-объекта в.net необходимо, чтобы на этом объекте был RC-Wrapper. Итак, мне просто интересно узнать, является ли это единственным способом продолжения? или У нас есть какой-либо другой способ вызова COM-объекта в.NET?

  • 0
    Если вы можете обновить до C # 4.0 (как я полагаю, вы все еще в C # 3.0), чтобы получить динамический: msdn.microsoft.com/en-us/magazine/ff714583.aspx
  • 2
    Та статья, на которую вы ссылаетесь, - полная ерунда, она не демонстрирует никакого кода COM. Общая проблема с этим веб-сайтом, никакого осмысленного обзора. RCW - это деталь реализации, вы никогда не создаете ее явно.
Теги:
com
visual-studio-2012

1 ответ

5
Лучший ответ

VS позволяет просто добавить ссылку на вашу COM-DLL. Это всего лишь вкладка в диалоговом окне "Добавить ссылку". Для большинства сценариев этот процесс довольно плавный. Он автоматически генерирует полный RCW для вас. Вам не нужно писать какой-либо ручной код.

См. Практическое руководство. Добавление или удаление ссылок с помощью диалогового окна Добавить ссылку.


Если вам нужно больше управления, другим способом является создание класса C++/CLI или управляемого C++, который управляет и вызывает ваш COM-класс. Этот управляемый класс C++ может быть вызван в свою очередь вашим кодом С#. Вы по существу создаете "ручную" оболочку вокруг вашего COM-кода. C++/CLI - это гибридный язык, объединяющий элементы как управляемого.NET, так и неуправляемого кода C++.

В этой статье объясняются основы: Быстрый C++/CLI - Узнайте C++/CLI менее чем за 10 минут. Вам нужно будет адаптировать его, чтобы добавить обычный код управления жизненным циклом для классов COM.

  • 0
    Благодарю. Я просто собираюсь создать новый класс Managed C ++.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню