Сделать плагин .net для приложения MFC? - PullRequest
0 голосов
/ 11 августа 2011

Мне нужно написать плагин для приложения MFC:
- плагин развернут как dll.
- Во время выполнения приложение MFC вызывает плагин, а плагин показывает настраиваемое диалоговое окно.
- DLL должна быть загружена динамически, приложение MFC не должно быть повторно выполнено, если DLL обновлена.

В основном я пишу в .net, и после игры с MFC все кажется мне слишком странным (без событий / делегатов и т. Д.). Я в порядке, чтобы написать DLL MFC, но если я могу сделать это в .net, то я готов попробовать. Возможным решением является то, что я могу написать C # dll и выставить его как COM. Поскольку я ничего не знаю о COM, вот мои вопросы:
- Нужно ли устанавливать .net framework на компьютер клиента?
- Может ли COM динамически загружаться из приложения MFC?
- Я прочитал что-то о регистрации сборки с помощью COM, это происходит на компьютере клиента? (если да, то может потребоваться обновление установщика) - Легко ли использовать COM в приложении MFC (для этого требуется, чтобы разработчики MFC изменили свой код)

Или, если приложить слишком много усилий для установления соединения между .net, COM и MFC, вы бы предложили мне написать код в MFC? Спасибо.

UPDATE:
Я решил использовать C ++ / CLI в качестве моста между MFC и .Net. Смешанная DLL C ++ / CLI может быть вызвана из приложения MFC, и DLL может использовать .net Framework. Таким образом, я могу кодировать пользовательский интерфейс с C # в другой DLL, и эта DLL может быть вызвана C ++ / CLI.

Ссылки:

  1. Собственная и .NET совместимость
  2. Интеграция форм Windows Forms в ваши приложения MFC через C ++ Interop

1 Ответ

1 голос
/ 11 августа 2011

Нужно ли устанавливать .net framework на компьютер клиента?

Да, рама должна быть установлена ​​на клиентском компьютере

Может ли COM динамически загружаться из приложения MFC?

Может, приложение MFC будет загружать вашу DLL динамически, оно может вызывать ее без обновления, если открытый интерфейс вашего класса не изменяется

Я читал кое-что о регистрации сборки в COM, это происходит на компьютере клиента? (если да, то может потребоваться обновление установщика)

Да. COM-объект .NET (или любой COM-объект в этом отношении) должен быть зарегистрирован на компьютере клиента. Вы можете использовать проект установки здания в Visual Studio, чтобы сделать это

Легко ли использовать COM в приложении MFC (для этого требуется, чтобы разработчики MFC изменили свой код)

Это должно быть достаточно просто, но это больше вопрос для разработчиков MFC

Не могли бы вы предложить мне код в MFC

Вы знаете C ++ или MFC? Если нет, то это, вероятно, намного больше работы.

Другой вариант - записать компонент в C ++ / CLR . Он может предоставлять беспилотные функции / классы, которые можно напрямую вызывать из приложения MFC.

...