Страница 1 из 1

От MFC Dialog к COM...

Добавлено: 11 июл 2009, 14:18
ALTOM
Решаю, осваивать ли COM-технологию ?
Написаны DLL на VC++ 6, содержащие MFC-классы диалогов.
Теперь требуется их переработать и в будущем разрабатывать новые классы, которые можно было бы использовать и в VC++ 6, и в C++.net и в C#.net ?

Re: От MFC Dialog к COM...

Добавлено: 11 июл 2009, 20:46
Romeo
Переделка содержимого диалогов в ActiveX элемент управления, или самого диалога в COM объект - это действительно выход из данной ситуации. Платформа .NET чудесным образом умеет дружить с COM, потому всё будет работать как в VC 6, так и в C++.NET и C#.

Re: От MFC Dialog к COM...

Добавлено: 12 июл 2009, 00:43
WinMain
.NET конечно хорошо взаимодействует с СОМ-объектами, но в данном случае это будет не самым лучшим решением.
На мой взгляд, лучше оставить существующую DLL такой, какая она есть. А для платформы .NET создать отдельную сборку и реализовать аналогичные визуальные формы с помощью Windows.Forms и языка C#.

Альтернативный вариант: в проект существующей DLL включить поддержку CLR и с помощью C++/CLI сделать классы-обёртки для уже существующих классов С++. Тогда она становится доступной для программирования в языках CLR. К тому же в свойствах проекта CLR-сборки можно включить опцию совместимости с СОМ и она автоматически становится СОМ-объектом.

Если же переделывать существующую DLL в СОМ-объект без использования CLR, то нужно будет фактически создавать новый проект СОМ-сервера и переносить в него уже существующий код из ранее созданного проекта DLL.

Re: От MFC Dialog к COM...

Добавлено: 12 июл 2009, 10:26
ALTOM
Для .NET пока сам не программировал, и м.б. поэтому из Вашего ответа не понял, как будет возможно использовать новые классы в VC 6 ?

Re: От MFC Dialog к COM...

Добавлено: 12 июл 2009, 12:22
WinMain
Когда создаёшь CLR-сборку, можно в свойствах проекта установить опцию COM-compatible, что добавляет в этот модуль библиотеку типов и через СОМ-интерфейс делает этот модуль доступным для других языков программирования (таких как С++, VBA, JavaScript и пр.).

От MFC Dialog к COM...

Добавлено: 12 июл 2009, 13:32
ALTOM
Правильно ли я понял ?
Вы предлагаете исходники, написанные на VC++ 6, скопировать в проект на C++/CLI и к ним добавить обертки для классов.
Надо будет изменять синтаксис исходников ?
И как произойдёт преобразование вызовов MFC ?

Re: От MFC Dialog к COM...

Добавлено: 12 июл 2009, 14:57
WinMain
Visual С++ 2005 и выше позволяет включить поддержку CLR в уже существующий проект. Т.е. первоначальный исходный код преокта менять не нужно. Надо лишь написать на C++/CLI обращение к уже существующим функциям и классам MFC. Тогда этот модуль станет доступным для использования в других .NET-приложениях.

Re: От MFC Dialog к COM...

Добавлено: 12 июл 2009, 18:44
ALTOM
Спа-си-бо за ответы.
Буду пробовать, сделать то, что Вы рекомендуете...
Надеюсь, что не потрачу ВРЕМЯ и СИЛЫ зря...
Претензий нет и не будет.
До следующих вопросов.
ALTOM.