Для одного из побочных проектов мне нужно написать приложение С#, необходимое для использования стороннего объекта INPROC COM. К сожалению, С# не является моим основным языком программирования, поэтому мои знания немного ограничены. Имеются ли какие-либо хорошие учебники по доступу к COM-объекту из С#? Использование этого стороннего COM-объекта требует, чтобы я создал реализацию указанного COM-интерфейса и предоставил эту реализацию в COM-объект, чтобы он мог функционировать.
Любые хорошие учебники по использованию COM из С#?
Ответ 1
Есть хорошая книга под названием .NET и COM: полное руководство по совместимости, которое я собираюсь начать читать, поскольку я хочу лучшего понимания COM-взаимодействия. Возможно, это было бы полезно и вам, проверьте это.
В центре внимания книги находится COM Взаимодействие (поскольку это более крупный предмет), и сердце обсуждение разбито на четыре части:
* Using COM Components Within the .NET Framework * Using .NET Framework Components from COM * Designing Good .NET Framework Components for COM Clients * Designing Good COM Components for .NET Framework Clients
Объем книги примерно все, что связано с использованием "неуправляемых код" в .NET Framework. Технологии, основанные на COM Взаимодействие также покрытие - совместимость Windows Элементы управления форматами и элементы управления ActiveX, Взаимодействие с COM + и Взаимодействие с распределенным COM (DCOM). Хотя вызов платформы Услуги - это отдельная технология от Совместимость COM, есть много области перекрытия, поэтому включение в книга естественна. Все эти технологии являются основной частью Общие языковые исполнения и .NET Framework, и, скорее всего, он будет использоваться не только как путь миграции для существующих программных проектов, но для разработка нового программного обеспечения для следующие несколько лет
Также ознакомьтесь с этой (юридически) бесплатной pdf-книгой COM и .NET Interoperability, которую вы можете скачать с TheServerSide.com. Вы должны зарегистрироваться, прежде чем сможете скачать, но вы можете просто bugmenot, если вам это не нравится.
Ответ 2
У меня довольно большая коллекция образов .NET ↔ COM, которую я сбрасываю ниже.
Проблема в том, что ни один учебник/статья не охватывает все основы и gotacha's. Поэтому вам нужно пройти через пару из них и смешать и сопоставить, в зависимости от того, что вы хотите сделать.
Вот лучшее из того, что я нашел до сих пор...
Общие статьи/учебники .NET COM
- .NET - COM-совместимость.
- Совместимость COM в .NET Framework: Часть I.
- Общие сведения о совместимости COM COM с приложениями .NET.
- Предоставление .NET-компонентов COM.
- Построение COM-объектов в С#.
- Вызов управляемых .NET С# COM-объектов из неуправляемого кода на С++.
- Родной и управляемый Interop Made Simple.
- Использование сборки .NET с COM-клиентом.
- Moserware: использование Obscure API Windows COM в .NET
- COM-совместимость в .NET Часть 1 Часть 2 Часть 3
- COM Interop Часть 1: Учебное пособие для С# Часть 2: Учебное пособие по серверу С#
- Вызов COM-компонента из С# (поздняя привязка)
- Построение COM-объектов в С#
MSDN на .NET и COM
- Учебные пособия COM Interop (С#)
- Предоставление компонентов .NET Framework для COM
- Interop Marshaling
- Расширенная совместимость COM
- Как зарегистрировать компонент для COM-взаимодействия
ActiveX в .NET
- Библиотека классов ActiveX для Internet Explorer
- Создать ActiveX в .NET Шаг за шагом.
- Динамическое добавление элементов управления ActiveX в управляемом коде.
- Предоставление элементам управления Windows Forms в качестве элементов управления ActiveX.
- Импорт и расширение элементов управления ActiveX в .NET.
- Учебники С# - ActiveX с С#
- CodeGuru: Расширяемые страницы свойств OLE в .NET
- Написание элемента управления ActiveX в .NET
- Хостинг элементов управления ActiveX в .NET Compact Framework 2.0
- Хостинг элементов управления Windows Forms в контейнерах управления COM - O'Reilly Media
Ответ 3
Возможно, это полезно для вас: http://msdn.microsoft.com/en-us/library/aa645736%28VS.71%29.aspx
Ответ 4
Основы довольно просты, и MSDN имеет хорошую справочную информацию.
В вашем проекте С# используйте ссылку "Добавить ссылку", чтобы добавить ссылку на компонент COM.
Если вам нужно реализовать COM-интерфейс, создайте класс, который наследует от него:
class MyClass : IMyComInterface
{
...
}