2009-08-24 6 views
7

Istnieje wiele pytań dotyczących zestawów narzędzi GUI dla systemu C++ dla systemu Windows, ale dotyczą one głównie wersji dla komputerów osobistych.Czy zmiana z MFC na QT lub WTL (lub inny zestaw narzędzi GUI) jest zalecany do rozwoju Windows CE?

Teraz rozpoczynam projekt C++ dla ręcznego urządzenia VGA z systemem Windows CE 5.0 i myślę o tym, którą bibliotekę GUI wybrać. Mam doświadczenie w korzystaniu z MFC w projektach Windows CE, ale w SO istnieją słabe punkty MFC (np. Dość przestarzałe technologie, zła abstrakcja, nadużywanie preprocesora C++ itd.). W przypadku projektów desktopowych najczęściej polecają QT i WTL. Jednocześnie MFC ma pewne cechy, które wciąż są znaczące dla rozwoju wbudowanego.

Jak myślisz, czy rozsądnie jest wydać trochę zasobów na naukę nowego zestawu narzędzi GUI, aby przełączyć się z MFC i jaki zestaw narzędzi poleciłbyś w tym przypadku? Czy MFC jest nadal najbardziej znaczącym narzędziem do projektowania osadzonego w Windows CE?

Najważniejszymi cechami zestawu narzędzi są: umiarkowane obciążenie procesora i pamięci, mały rozmiar środowiska wykonawczego, dobra konstrukcja obiektowa, zgodność z nowoczesnymi praktykami C++, stroma krzywa uczenia się, szybkość programowania, wygląd komercyjny, poręczne debugowanie i projektowanie przybory.

(co jest potrzebne w projekcie. Szeregowy port komunikacyjny, nici, wykresy i diagramy rysunku komunikacja ActiveSync)

+1

Mówię kij z MFC, jeśli wiesz. Qt i WTL są fajne, ale ramy GUI, wszystkie z nich, są trudne. A w QT jest też makro. – toto

+0

Heh, Qt naprawdę nie pomoże ci w dziale "nadużywania preprocesora C++". –

Odpowiedz

8

Mamy 4.5 Qt w projekcie Windows CE 5.0 w fazie końcowej, więc staram się powiedzieć o zaletach/wadach Qt rozwijających się w porównaniu do MFC.
Qt Pluses:

  • Nicea OOP konstrukcja
  • wspomagana bezpośrednio sygnały/gniazda poboru pozwala rozwijają się szybko i łatwo
  • Qt obsługuje wiele różnych cech (GUI systemu plików sieciowych, gwintowanie itp)
  • Licencja LGPL pozwala rozwijać aplikację komercyjną za darmo
  • Otwarte kody źródłowe, przykłady, doskonała dokumentacja sprawia, że ​​krzywa uczenia się dużo, dużo steppera
  • Biblioteka wieloplatformowa. Bez problemu mogliśmy uruchomić naszą aplikację na urządzeniu i komputerze z systemem Vista. W 4.6 wersja wsparcie Symbian został dodany

Qt minusy:

  • dość duże pliki binarne (> 10 MB dla Core i moduł GUI z wszystkich funkcji „on”, ale można dostosować budynek biblioteki i zrobić bibliotekami mniejszy)
  • Big pamięci i wykorzystanie procesora w porównaniu do MFC

Myślę, że główną zaletą MFC porównując do Qt mu jego pamięci i procesora minimalny ślad. Jeśli to nie jest problem - wybierz Qt.
P.S. Komunikacja COM port i rysunek działki nie są natywnie zawarte w Qt, ale istnieją biblioteki oparte na LGPL Qt, które dają takie funkcje (np. "Qwt" do kreślenia).

+0

"Licencja LGPL pozwala rozwijać aplikację komercyjną za darmo" - czy to prawda? Jestem zainteresowany aplikacją komercyjną, więc powinieneś kupić licencję, która jest bardzo droga. – Narek

+0

Nie. Wersja LGPL jest wolna od jakichkolwiek opłat, ale jak twierdzi LGPL, należy udostępnić wszelkie zmiany kodu biblioteki Qt. Jeśli wybierzesz wersję komercyjną, możesz zachować zmiany zamknięte. http://qt.nokia.com/products/licensing – cybevnm

1

Jeśli nauczysz QT, będziesz dobrze przygotowany do pisania kodu dla wszystkich innych (Linux), które są wspierane przez Nokię, Intel i Google. To samo w sobie sprawia, że ​​jest to dla mnie najbardziej odpowiednia technologia!

Być może nadal będziesz musiał szukać innych bibliotek dla niektórych innych aspektów swojego kodu, ale używanie QT do GUI nigdy nie będzie złym wyborem.

+0

, chyba że nie chcesz udostępniać kodu źródłowego – ZeroCool

+0

Nie musisz udostępniać kodu źródłowego przez licencję komercyjną QT. Licencja LGPL QT zobowiązuje tylko do udostępniania zmian w kodzie źródłowym Qt. –

+0

Nie tylko platformy Linux, Symbian. – e8johan

2

Pierwszą zaletą jest to, że QT jest biblioteką na wielu platformach. Po drugie, MFC to ból głowy. Najprostsze rzeczy związane z MFC mogą okazać się dużym problemem . Przejdź z MFC do QT tak szybko, jak to tylko możliwe.

2

Jeśli znasz MFC, to trzymaj się go: działa dobrze dla CE. Istnieją oczywiście pewne ograniczenia w porównaniu do Desktop MFC, ale generalnie nie są one znaczące. Myślę, że głównym problemem, jaki znaleźliśmy, jest to, że drukowanie nie jest obsługiwane w MFC8 dla CE (VS2005).

Z drugiej strony, jeśli masz puste płótno, polecam pójść na .NET - C# lub VB, w zależności od tego, co najbardziej Ci odpowiada.

+0

Jeśli nie masz ograniczeń pamięci, C# jest twoim najszybszym TTM. Bardzo łatwy w obsłudze dla większości aplikacji wbudowanych, ale kompaktowa architektura to potężna pamięć. Istnieją również bardzo irytujące pominięcia w CF, szczególnie jeśli pochodzi z tła pulpitu C#. – EndsOfInvention

+0

@EndsOfInvention: uzgodniony, pochodzący ze środowiska desktop .NET Compact Framework ma dużo więcej braków w stosunku do pełnego .NET niż MFC CE w stosunku do Desktop MFC. – AAT

Powiązane problemy