Могу ли я использовать C ++ / CLI (.NET Winforms / WPF) для предоставления графического интерфейса для приложения, написанного на родном C & C ++ - PullRequest
4 голосов
/ 06 мая 2010

У меня есть приложение, написанное на C & C ++. Теперь мне нужно предоставить графический интерфейс для этого приложения. MFC - лучший вариант для меня. Но я не знаком с MFC.

Так можно ли использовать .NET для создания GUI для этого? Если так, то как? Пожалуйста, будьте ясны.

Если я могу использовать .NET, я думаю, я тоже могу использовать WPF?

Ответы [ 4 ]

14 голосов
/ 06 мая 2010

Вы можете технически написать GUI на C ++ / CLI, но я бы крайне не одобрил это. C ++ / CLI хорош для написания .NET-оболочек вокруг родного C ++ и предоставления его другим языкам .NET, но не более того.

В вашем случае, если вы действительно настроены на использование WinForms / WPF, то я бы предложил использовать C ++ / CLI для создания оболочки вокруг вашего кода C ++, а затем создать реальный графический интерфейс в C #.

В противном случае библиотека C ++, такая как Qt или wxWidgets , также будет достаточной для создания "родного" графического интерфейса C ++.

Вот краткое введение в C ++ / CLI . Это краткое руководство по началу работы с C ++ / CLI. Как только вы создадите C ++ / CLI DLL, вы можете просто добавить ее в качестве ссылки на ваш проект на C # и это просто работает (tm).

5 голосов
/ 06 мая 2010

Организуйте приложение C ++ как «сервер», экспортируя функции, которые могут быть вызваны «клиентом» GUI.Создайте этот код C ++ как DLL, экспортируя указанные функции.Создайте приложение с графическим интерфейсом в виде .NET EXE и позвольте ему вызывать указанные функции в вашей DLL с помощью Platform Invoke (P / Invoke).

3 голосов
/ 09 мая 2010

Эта книга также заслуживает особого упоминания, поскольку она охватывает сложные темы и использование WPF с C ++ / CLI: C ++ / CLI в действии (Manning)

2 голосов
/ 07 мая 2010

Зависит от того, хотите ли вы выучить другой язык? Если вы выберете маршрут C ++ / CLI или C #, вам придется ознакомиться с этими языками еще до того, как вы начнете использовать графический интерфейс. Да, MFC не самый лучший, но, по крайней мере, вы все еще можете использовать C ++ с ним. И, похоже, именно этого Microsoft хочет, чтобы вы использовали, поскольку большинство их видеоуроков основаны на MFC: http://msdn.microsoft.com/en-us/visualc/bb693459.aspx

Если вы выбираете маршрут WinForms C ++ / CLI, Visual Studio фактически поставляется с шаблоном для этого. Даже 2010 не поставляется с шаблоном проекта WPF, таким как C #, поэтому вы должны получить сообщение о том, что Microsoft хочет, чтобы вы использовали C # для графического интерфейса.

В любом случае, если вы переносите тривиальное приложение или программу, использовать WinForms несложно. На самом деле, это немного сложнее, чем использовать C #, так как вы получаете возможность использовать тот же редактор GUI в Visual Studio, но вам приходится писать намного больше кода вручную, чем с помощью C #.

И вы должны знать Microsoft C ++ / CLI, так как шаблон будет автоматически генерировать код, и вам нужно понимать, что он делает, чтобы вы могли игнорировать большую его часть.

Начало работы Ивор Хортон по Visual C ++ 2010 и Visual C ++ 2008 Как программировать (2-е издание) ~ Пол Дж. Дейтель, Харви М. Дейтель - две единственные книги, которые я написал Мы видели, что это охватывает программирование на WinForm / C ++ / CLI, поэтому вы можете посмотреть на это или просто использовать C #, как всем рекомендуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...