Как перейти с C ++ COM на C ++ CLI - PullRequest
2 голосов
/ 13 февраля 2012

У меня есть C ++ DLL, которая выставляет вещи через COM. Я хочу преобразовать его в C ++ / CLI, который предоставляет управляемый интерфейс. В идеале я просто добавляю CLI и конвертирую интерфейсы один за другим. Пока что мне ничего не удалось, поэтому я ищу конкретную стратегию.


Подробнее: Давным-давно я создал приложение, использующее COM для связи между C # и C ++. Мне надоел COM, а регистрация и прыжки на обручах необходимы на стороне C ++.

Я хочу использовать C ++ / CLI и заставить все это работать как управляемый код при случайном обращении из C ++ / CLI к собственным библиотекам, которые я использую.

Может ли кто-нибудь предложить мягкий путь миграции, такой, чтобы я мог использовать CLI и COM и конвертировать вещи в класс по ходу тестирования? Или что-то в этом роде.

Чтобы было ясно: у меня в настоящее время есть собственный код C ++, определяющий и реализующий интерфейсы COM. У меня есть код C # с использованием атрибутов COM для экспорта классов. Все эти вещи регистрируются для взаимодействия COM, и есть звонки в обоих направлениях. Я надеюсь переключить C ++ на CLI и переключиться на управляемые классы в C ++, а не COM-классы.

Вопрос обновлен для Ramhound: Во всяком случае, я бегу в кирпичные стены. Включение / clr в C ++ dll дает мне ошибки в ссылках от других вещей, пытающихся соединиться с этим кодом C ++. (Неразборчивые сообщения ATL / COM такого рода, которые отвлекают меня от C ++)

Ответы [ 2 ]

2 голосов
/ 13 февраля 2012

Возможно, вы захотите прочитать это, поскольку в нем представлены некоторые различные подходы и соображения: http://msdn.microsoft.com/en-us/magazine/dd315414.aspx

Вот простой пример того, как использовать взаимодействие в C ++ / CLI, где вы можете определить один или два метода и добавить еще, как вы идете: http://blogs.msdn.com/b/borisj/archive/2006/07/29/683061.aspx

0 голосов
/ 14 февраля 2012

пожалуйста, следуйте этому

http://msdn.microsoft.com/en-us/magazine/cc163494.aspx

используйте tlimp для генерации неуправляемой DLL-библиотеки COM в управляемую DLL

довольно просто !!!

...