C # — Каков наилучший способ создания компонента COM сегодня?

Я хочу создать настольный COM-объект для моего любимого проекта. У меня нет опыта работы с COM, и быстрый поиск показал, что ATL упростит вещи. Мне было интересно, есть ли какие-либо лучшие способы создать компонент COM сегодня. Лучше в том смысле, что вам нужно меньше — использовать C # вместо C ++ и любые другие вещи, о которых вы можете подумать.

5

Решение

Если развертывание или использование установки .NET Framework на клиентском компьютере не представляет для вас проблемы, то C # намного проще, чем C ++ (хотя вам, вероятно, придется пересматривать интерфейсы, IID и т. Д. В C #, используя P / Invoke). Если уменьшение зависимостей является проблемой, чем C ++ с ATL лучше.

4

Другие решения

Просто создайте его в C # и выставьте как компонент COM, см. Это руководство:

http://msdn.microsoft.com/en-us/library/zsfww439.aspx

2

Единственная причина, по которой я бы рассмотрел C ++ / ATL, это то, что я подключался к любым библиотекам C / C ++. Кроме того, я не могу придумать вескую причину использовать C ++ вместо C # (при условии, что ваш уровень мастерства эквивалентен в обоих случаях).

1

Я могу рекомендовать C ++ только в сочетании с библиотекой Microsoft ATL.

Я использовал некоторый инструмент генерации кода, написанный на C ++, который помог мне избавиться от довольно большого количества стандартного кода. Этот инструмент генерировал код, который генерировал больше интерфейсов, дружественных к C ++ (например, код, который генерируется в файлах tlh / tli, когда вы # импортируете библиотеку типов в Visual Studio. Мой генератор кода создает аналогичный код, только для серверов COM.

Если вы заинтересованы, отправьте письмо DerTopper по адресу web dot de. Поместите что-то вроде «Генератор COM-кода» в строке темы, чтобы вы не провалились через мой спам-фильтр.

С Уважением,
Стюарт

-1