Nano Hash - криптовалюты, майнинг, программирование

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

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


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

Ответы:


1

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

См. Как: добавить или удалить ссылки с помощью диалогового окна добавления ссылки .


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

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

18.07.2014
  • Спасибо. Я просто собираюсь создать новый управляемый класс C ++. 22.07.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..