Подтвердить что ты не робот

Лучший способ доступа к COM-объектам из С#

Я планирую использовать различные объекты, которые отображаются как объекты COM. Чтобы упростить их использование, я хотел бы объединить их как объекты С#. Каков наилучший подход для этого?

4b9b3361

Ответ 1

Если библиотека уже зарегистрирована, вы можете выполнить следующие шаги, чтобы Visual Studio создала для вас сборку interop:

  • Откройте проект Visual Studio.
  • Щелкните правой кнопкой мыши на "Ссылки" (прямо под проектом в обозревателе решений) и выберите "Добавить ссылку".
  • Выберите вкладку COM.
  • Выберите компонент, с которым вы хотите взаимодействовать.
  • Выберите "ok".

Это будет класс или набор классов С#, которые переносят весь материал интерфейса COM с обычным классом С#. Затем вы просто используете его, как и любую другую библиотеку С#. Если импорт справки работал хорошо, вы можете исследовать его, как и любую другую ссылку, и методы/structs/classes/константы должны отображаться в этом пространстве имен и intellisense.

Это позволит вам начать, по крайней мере. Если это развертывается в корпоративной среде или в той, которую вы можете контролировать, это может быть все, что вам нужно.

Ответ 2

В этой статье есть хорошая статья из MSDN, в которой объясняется управляемый и неуправляемый код, и вы шаг за шагом шаг за шагом, как это сделать. http://msdn.microsoft.com/en-us/library/ms973800.aspx#

Удачи!

Ответ 3

Вы можете (изначально) просто импортировать ссылку. Если вам требуется больше контроля (или получить ошибки из импорта VS), вы можете использовать tlbimp в windows sdk. Это создаст сборные блоки. Вы можете получить определения классов из метаданных.

EDIT: на самом деле это намного сложнее, если вы хотите работать с 64-разрядным