Я работаю над проектом, где мне нужно вызвать неуправляемый объект COM в проекте С#.net. В этой ссылке я обнаружил, что для вызова COM-объекта в.net необходимо, чтобы на этом объекте был RC-Wrapper. Итак, мне просто интересно узнать, является ли это единственным способом продолжения? или У нас есть какой-либо другой способ вызова COM-объекта в.NET?
VS позволяет просто добавить ссылку на вашу COM-DLL. Это всего лишь вкладка в диалоговом окне "Добавить ссылку". Для большинства сценариев этот процесс довольно плавный. Он автоматически генерирует полный RCW для вас. Вам не нужно писать какой-либо ручной код.
См. Практическое руководство. Добавление или удаление ссылок с помощью диалогового окна Добавить ссылку.
Если вам нужно больше управления, другим способом является создание класса C++/CLI или управляемого C++, который управляет и вызывает ваш COM-класс. Этот управляемый класс C++ может быть вызван в свою очередь вашим кодом С#. Вы по существу создаете "ручную" оболочку вокруг вашего COM-кода. C++/CLI - это гибридный язык, объединяющий элементы как управляемого.NET, так и неуправляемого кода C++.
В этой статье объясняются основы: Быстрый C++/CLI - Узнайте C++/CLI менее чем за 10 минут. Вам нужно будет адаптировать его, чтобы добавить обычный код управления жизненным циклом для классов COM.