Выбор между WPF, wxWidgets, Win32 API и MFC - PullRequest
6 голосов
/ 24 октября 2009

Представьте, что вы работаете в Windows 7, и вам нужно написать графический интерфейс для приложения GRAPHIC (например, редактора ландшафта, средства просмотра сетки ...), которое предполагает широкое использование DirectX и OpenGL (написано на родном C ++). Если ваша цель - мультиплатформенное программное обеспечение, тогда вам следует выбрать wxWidgets, но представьте, что вы работаете только с Windows-приложением ... каким будет ваш выбор? а почему?

Я предполагаю, что приложение будет работать как на XP, так и на Vista / 7, и, очевидно, в случае WPF пользовательский интерфейс будет управляться, но он будет вызывать собственные функции через прокси-подобный класс C ++ / CLI (вызовет ли «подпрыгивание» из-за управляемых и нативно-управляемых проблем с производительностью?).

Ответы [ 10 ]

21 голосов
/ 01 ноября 2009

RAD Studio также может сделать работу

  • Улучшено в версии 2010! VCL (Visual Библиотека компонентов) для быстрого сборка Microsoft Windows приложения теперь включают в себя бесшовные Поддержка Windows 7 и изящная резервная совместимость с Windows Vista, XP и 2000
  • Улучшено в версии 2010! Windows Vista и Windows 7 API заголовки полностью использовать последнюю версию Windows Возможности
  • Новое в 2010 году! Поддержка Windows 7 Direct2D API

вы также можете сделать WPF с Delphi Prism и wxWidgets с сдвоенными формами

12 голосов
/ 24 октября 2009

Если вы знакомы со своими навыками C ++, я рекомендую WTL. Это очень легкий и приводит к худой машинный код. Версия Google Chrome для Windows была написана с использованием WTL .

9 голосов
/ 03 ноября 2009

Чтобы минимизировать время разработки и максимизировать производительность, я бы определенно остановился на Delphi 2010 (Rad Studio 2010). Вы получаете собственное выполнение, прямые интерфейсы с Windows 7 Direct2D API и, возможно, одну из лучших сред IDE / Development, доступных в Windows 7. Что еще вы хотите?

Ларри Дрюс TheSoftwareRonin

7 голосов
/ 01 ноября 2009

Вы можете рассмотреть возможность использования Qt, даже для приложения только для Windows, просто потому, что API Qt C ++ очень хорошо сделан. Qt поддерживает OpenGL и может использоваться вместе с DirectX.

7 голосов
/ 24 октября 2009

В WPF вы можете использовать DirectX Shaders для применения эффектов к объектам интерфейса ( здесь статья CodeProject, детализирующая аспекты разработки), и ожидается, что поддержка этого будет продолжать расти, поэтому Я бы выбрал WPF в качестве платформы для разработки. Кроме того, он сфокусирован на создании привлекательных пользовательских интерфейсов с разумными затратами усилий, и я думаю, что это очень важно при создании приложения, ориентированного на графику.

2 голосов
/ 03 декабря 2009

Обязательно ознакомьтесь с WDL ("whittle") командой Cockos (во главе с Джастином Франкелем из Nullsoft / Winamp Fame).

Это чрезвычайно легкая библиотека C ++, включающая «систему виртуального окна WDL».

Лично я не использовал его, но могу поручиться за какое-то отличное программное обеспечение, которое было сделано с ним. Чрезвычайно эффективные и легкие приложения.

Ссылка: WDL

2 голосов
/ 24 октября 2009

Я бы лично использовал http://sourceforge.net/projects/win32-framework/ для создания любых приложений на базе Windows на C ++. В противном случае я бы просто использовал VB.Net или C #, потому что вы можете легко переносить код между ними и конструктором форм. Это очень полезно.

2 голосов
/ 24 октября 2009

вызовет ли «подпрыгивание» из-за управляемых и нативно-управляемых проблем с производительностью?

определенно, но поскольку вы пишете только редактор (а не игру, в общем), вам не о чем беспокоиться

Приложения WPF, отображаемые подсистемой DirectX, насколько я знаю. так что если вы используете только DirectX, это будет хорошим выбором.

1 голос
/ 24 октября 2009
MFC       :: Just say NO for any kind of project.
Win32     :: Well, I can not really recommend using it.
wxWidgets :: I have used it and seen no problem, good choice.
WPF       :: I have not and never will use it as it is .Net bound.
FLTK      :: Also look at http://fltk.org/, probably has better OpenGL support.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...