Расширение устаревшего приложения C ++ для Windows с помощью WinForms - PullRequest
2 голосов
/ 22 июня 2010

Я работаю над унаследованным приложением C ++, которое работает на надежных бизнес-мобильных устройствах, разработанных Intermec. Мне нужно добавить некоторые функциональные возможности, и я хотел бы построить его с помощью WinForms. Идея состоит в том, что пользователи будут нажимать кнопку в старом приложении, которая запускает экран WinForms. Затем они что-то делают, нажимают OK и возвращаются в приложение C ++.

Вопрос в том, могу ли я как-то "встроить" приложение Winforms в приложение C ++, чтобы я мог открыть Winform как модальное диалоговое окно и передавать информацию между двумя приложениями.

Большое спасибо за помощь.

Приветствия

Mark

Ответы [ 3 ]

2 голосов
/ 22 июня 2010

Во-первых, давайте проясним, что компактный каркас не полный каркас, и поэтому многие вещи, которые будут работать на рабочем столе, не будут работать для вас.*

У вас действительно есть только одна опция, хотя есть много разных способов использовать одну опцию.Поскольку Compact Framework не поддерживает хостинг EE (т. Е. Загружает CLR в собственном приложении), единственным вариантом для запуска управляемого кода является написание и выполнение управляемого приложения.Период.

Теперь, как я уже сказал, есть варианты того, как вы поступите с этим.Например, вы можете запустить приложение при запуске приложения MFC и просто запустить его без формы, а затем использовать некоторую форму IPC ( очереди точка-точка , вероятно, будет наиболее целесообразным, но файл сопоставления с памятью также может быть полезен), и тогда приложения "общаются" друг с другом.Таким образом, ваше приложение C ++ может отправить сообщение с надписью «показать форму A», и когда форма A закрывается, управляемое приложение может отправить данные обратно.

1 голос
/ 22 июня 2010

Существует MFC и демонстрация интеграции WinForms для VS2005. Надеюсь, это поможет

0 голосов
/ 22 июня 2010

Да, вы можете сделать это, используя CCW (COM Callable Wrapper), читайте больше здесь: - http://www.codeproject.com/KB/atl/ComWarpperForDotNet.aspx

...