Рекомендуется ли переход с MFC на QT или WTL (или другой инструментарий GUI) для разработки Windows CE? - PullRequest
7 голосов
/ 24 августа 2009

Существует довольно много вопросов, касающихся инструментария C ++ GUI для Windows, но в основном они относятся к версиям настольных ОС.

Сейчас я начинаю проект C ++ для портативного устройства VGA с Windows CE 5.0 и думаю о том, какую библиотеку графического интерфейса выбрать. У меня есть некоторый опыт использования MFC в проектах Windows CE, но есть некоторые известные слабые стороны MFC, упомянутые здесь в SO (например, довольно устаревшие используемые технологии, плохая абстракция, чрезмерное использование препроцессора C ++ и т. Д.). Для настольных проектов они рекомендуют QT и WTL в основном. В то же время MFC обладает некоторыми характеристиками, которые по-прежнему важны для разработки встраиваемых систем.

Итак, как вы думаете, разумно ли тратить некоторые ресурсы на изучение нового инструментария GUI для перехода с MFC, и какой инструментарий вы бы порекомендовали в этом случае? Или MFC по-прежнему наиболее значим для разработки встраиваемых систем Windows CE?

Наиболее важными характеристиками инструментария являются: умеренная загрузка ЦП и памяти, небольшой размер среды выполнения, хороший объектно-ориентированный дизайн, соответствие хорошим современным практикам C ++, крутая кривая обучения, скорость разработки, коммерческий вид, удобные средства отладки и проектирования. ,

(Что требуется в проекте: связь через последовательный порт, рисование потоков, графиков и диаграмм, связь ActiveSync.)

Ответы [ 4 ]

8 голосов
/ 30 декабря 2009

У нас есть проект Qt 4.5 для Windows CE 5.0 на завершающей стадии, поэтому я постараюсь рассказать о преимуществах / недостатках разработки Qt по сравнению с MFC.
Qt Плюсы:

  • Отличный дизайн ООП
  • Абстракция собственных сигналов / слотов позволяет развиваться быстрее и проще
  • Qt поддерживает множество различных функций (графический интерфейс, файловая система, работа в сети, многопоточность и т. Д.)
  • Лицензия LGPL позволяет бесплатно разрабатывать коммерческое приложение
  • Коды с открытым исходным кодом, примеры, отличная документация значительно ускоряют процесс обучения
  • Многоплатформенная библиотека. Мы смогли без проблем запустить наше приложение на устройстве и настольном компьютере с ОС Vista. В версии 4.6 была добавлена ​​поддержка Symbian

Qt минусы:

  • Довольно большие двоичные файлы (> 10 Мбайт для модуля Core и Gui со всеми включенными функциями, но вы можете настроить сборку библиотеки и уменьшить размер библиотек)
  • Большая загрузка памяти и процессора по сравнению с MFC

Я думаю, что главное преимущество MFC по сравнению с Qt это его минимальная память и нагрузка на процессор. Если это не проблема - выберите Qt.
Постскриптум Коммуникационный порт и рисование графиков изначально не включены в Qt, но существуют библиотеки на основе LGPL Qt, которые предоставляют вам такие возможности (например, «Qwt» для построения графиков).

2 голосов
/ 28 августа 2009

Первое преимущество в том, что QT - это кроссплатформенная библиотека. Во-вторых, MFC - это головная боль. Самые простые вещи, которые можно сделать с помощью MFC, могут обернуться большой проблемой . Поэтому переходите от MFC к QT, как только это станет возможным.

2 голосов
/ 11 сентября 2009

Если вы знаете MFC, то придерживайтесь его: он отлично работает для CE. Есть, конечно, некоторые ограничения по сравнению с Desktop MFC, но они, как правило, несущественны. Я думаю, что основная проблема, которую мы обнаружили, заключается в том, что печать не поддерживается в MFC8 для CE (VS2005).

С другой стороны, если у вас есть чистый холст, я бы порекомендовал перейти на .NET - либо на C #, либо на VB, в зависимости от того, что вам удобнее всего.

1 голос
/ 24 августа 2009

Если вы изучите QT, у вас будут все возможности для написания кода для всех других (Linux) платформ, на которые опираются линии Nokia, Intel и Google. Это само по себе делает эту технологию наиболее подходящей для меня!

Возможно, вам все еще придется искать другие аспекты вашего кода в других библиотеках, но использование QT для GUI никогда не будет плохим выбором.

...